• Applications
  • [Discussion] Certificat SSL signé et gratuit avec Let's Encrypt

spider1163

ok je comprends mieux la procédure.

il faut donc lancer l'opération, lorsqu'il demande les enregistrements, il faut les créer, et ensuite attendre que cela se propage (mais cela doit prendre pas mal de temps) et ensuite finir l'opération du script.

et bien je doigt avoir les dois crochus car j'ai toujours le meme erreur, meme avec juste le domaine tld.fr

pfuiiii, il se mérite ce certificat wildcard....

@spider1163 Du coup si on a deux enregistrements TXT (ndd.tld et **.ndd.tld) (<-- j'ai mis deux étoiles parce qu'une seule ne veut pas s'afficher 🙁) à faire ils sont cessé ressembler à quoi j'ai fais mon premier en tant que : acme-challenge.ndd.tld. avec la valeur indiquer par certbot mais pour le second j'ai un doute, quelque chose du style acme-challenge.*.ndd.tld. (<-- Je sais que c'est pas sa 😛) et je vais la chercher où la valeur ?

Du coup j'ai fais la commande que tu as donner un peu plus haut avec mon ndd.tld et *.ndd.tld j'obtiens :

Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for ndd.tld
dns-01 challenge for ndd.tld


Please deploy a DNS TXT record under the name
_acme-challenge.ndd.tld with the following value:

valeur tadada ! 845+85sqkflmksdfDD4656 etc..

Before continuing, verify the record is deployed.

Press Enter to Continue

Si tu regardes bien, cela concerne le même hôte : _acme-challenge.domain.tld
Tu dois donc créer 2 enregistrements TXT sur cet hôte (de préférence avec le TTL le plus bas possible, 1 sinon 300 en général), possédant chacun une des valeurs fourni par certbot.

Si tu ne peux pas créer 2 enregistrements TXT sur le même hôte, essaie de séparer les 2 valeurs par un espace, ça peut marcher.

Le soucis c'est que certbot me fourni qu'une valeur, du coup j'en crée deux avec la même valeur ?
Je suis chez ovh la TTL est de 60 mini 🙂

Si tu as demandé ndd.tld et *.ndd.tld il doit te fournir 2 TXT (après avoir appuyé sur Entrer il me semble).
Il faut que les 2 soient saisis et propagés avant de valider.

Pourtant j'ai bien fait la commande :

./certbot-auto certonly --manual -d *.example.com -d example.com --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

Avec mon domaine.tld et *.domaine.tld, le retour me donne bien deux ligne dns-01 challenge for domaine.tld (d'ailleurs deux fois la même ligne)

Et me demande seulement un seul enregistrement, bon je vais essayer comme sa on verra bien 🙂


Edit : En effet, j'avais pas osez appuyer sur suivant ne voyant pas les deux demande mais il faut faire le premier enregistrement et dans un second temps il remet un message demandant le second 👍


Edit2 : Super sa fonctionne nickel ! Du coup maintenant pour le renouvellement j'ai vu qu'il y avait plusieurs manière, vous utilisez laquelle personnellement moi je pense sur un cron mais il faut que je regarde comment sa fonctionne et si je demande l’exécution du script tout les jours ou toute les semaine à une certaine heure etc...

Tu fais bien de soulever ce point :
Le souci du certificat wildcard c'est qu'il passe forcément par la vérification via DNS, et donc pour un renouvellement tu aura de nouveaux enregistrements TXT à re-faire à la main ...

L'intérêt des certificats wildcards (même en dehors de Let's encrypt) sur un serveur de prod est limité (sécurité/gestion/compatibilité), et étant donné la facilité d'ajouter des sous-domaines en ligne de commande (avec vérification HTTP), je continuerai à procéder comme cela personnellement.

    Ah ! C'est bon à savoir sa ! Bon c'est pas sorcier à faire sa ce fera donc à la main 🙃

    spider1163 comme dit plus haut ( BarbeRousse ) tu peux utiliser acme.sh pour automatiser le renouvellement du wildcard.
    Ce script permet d'utiliser plusieurs api de nombreux providers. 😉

    Pour renouveler un certificat, j'ai remarqué que
    ./certbot-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start"
    évite des downtime inutiles en n'arrêtant le serveur web qu'en cas de renouvellement de certificats

      2 mois plus tard

      Bonjour,
      Quand je veux faire un renouvellement de mon certifat avec:
      service nginx stop
      ./certbot-auto renew
      service nginx start
      Après "./certbot-auto renew" j'ai un message d'erreur (-bash: ./certbot-auto: Aucun fichier ou dossier de ce type)

      Je précise que je suis à la racine quand je lance la commande.

      C'est du à quoi ?
      Merci
      Arcenik

      fait ceci :

      service nginx stop

      apt-get update && apt-get upgrade

      cd /tmp
      wget https://dl.eff.org/certbot-auto
      chmod a+x ./certbot-auto
      ./certbot-auto --help all

      ./certbot-auto renew
      service nginx start

      J'ai un souci.

      Processing /etc/letsencrypt/renewal/myhost.me.conf

      Cert is due for renewal, auto-renewing...
      Plugins selected: Authenticator standalone, Installer None
      Renewing an existing certificate
      Performing the following challenges:
      tls-sni-01 challenge for myhost.me
      tls-sni-01 challenge for www.myhost.me
      Cleaning up challenges
      Attempting to renew cert (myhost.me) from /etc/letsencrypt/renewal/myhost.me.conf produced an unexpected error: Problem binding to port 443: Could no t bind to IPv4 or IPv6.. Skipping.
      All renewal attempts failed. The following certs could not be renewed:
      /etc/letsencrypt/live/myhost.me/fullchain.pem (failure)


      All renewal attempts failed. The following certs could not be renewed:

      /etc/letsencrypt/live/myhost.me/fullchain.pem (failure)

      1 renew failure(s), 0 parse failure(s)

      C'est un problème avec le port 443 si je comprends bien ?

      spider1163 je viens de le refaire en vérifiant bien que le serveur était coupé et ça à fonctionné.
      J'ai du faire le couillon.

      Merci pour votre aide.
      Arcenik

      4 mois plus tard

      Bonjour,

      Sur un serveur vierge, je fais la commande suivante :

      certbot certonly -d toto1515.fr

      Et j'ai le message d'erreur suivant :

      UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 266: ordinal not in range(128)

      J'ai déjà passé tout le système en UTF-8 et aucun changement, avez vous une idée?
      Merci