Renouveler automatiquement son certif Let’s Encrypt (one shot)

letsencrypt-logo
Dernière mise a jour 09 Fév 2020 a 08:24 pm

C’est comme une ritournelle tous les 3 mois, je reçois le message de demande de renouvellement de certificat Let’s Encrypt.Je m’étais promis d’automatiser la chose au plus vite mais j’avoue qu’il fallait que je réfléchisse à la manière la plus efficace de le faire. Une idée en chassant une autre j’étais déjà passé à d’autres problématiques inhérentes à la vie d’un hominidus geekus.
(Si jamais vous n’avez toujours pas passé votre site internet en Https , voici un tuto simplissime que je vous en courage à suivre.)
Donc pour revenir à nos moutons , »renouveler automatiquement son certificat Let’s encrypt » est devenue une nécessité pour qui voudrait dégager du temps pour des tâches un peu plus intéressantes . Voici donc comment s’y prendre:

Quand expire mon certificat SSL ?

Lister ses certificats et obtenir leurs dates d’expirations:

certbot-auto certificates

ce qui donne:

Found the following certs:
Certificate Name: monServeur.fr
Domains: monDomaine.fr
Expiry Date: 2017-12-28 16:20:59+00:00 (VALID: 6 days)
Certificate Path: /etc/letsencrypt/live/monServeur.fr/fullchain.pem
Private Key Path: /etc/letsencrypt/live/monServeur.fr/privkey.pem

C’est surtout la date d’expiration qui nous intéresse , ici encore 6 jours de validité. Il est donc grand temps de renouveler le certificat SSL de notre site web auprès de Let’s Encrypt (LE)

En mode manuel

Mon serveur web étant sous nginx je précise que le principe est le même pour apache.

-On arrête le service web:

service nginx stop

-On demande le renouvellement du certificat à l’agent « certbot »

certbot-auto renew

Si tout se passe bien vous aurez un message du type:

« Congratulations, all renewals succedeed »

-On redémarre le service nginx

service nginx start

-On vérifie la nouvelle date d’expiration qui devrait désormais être dans 90 jours.

certbot-auto certificates

Du coup ça serait pas mal d’automatiser tout ça 🙂

En mode automatique

-On récupère le chemin absolu pour l’agent certbot afin de le coller dans la crontab.

whereis certbot-auto

Chez moi la commande me renvoie comme chemin:

/usr/local/sbin/certbot-auto
Editer la crontab en copiant et aménageant à votre sauce cette ligne:

0 2 30 * * /usr/local/sbin/certbot-auto renew –pre-hook « service nginx stop » –post-hook « service nginx start » >> /var/log/certbot-renew.log | mail -s « CERTBOT Renouvellement » admin@monMail.com < /var/log/certbot-renew.log

Ici le renouvellement de certificat est invoqué tous les 30 jours à 02h00 du matin , envoi un mail avec le log si tout s’est bien déroulé.

Si jamais vous ne passez pas par l’outil « certbot » la ligne ci-dessous beaucoup plus simple devrait le faire:

30 3 * * 0 /opt/letsencrypt/letsencrypt-auto renew > /var/log/letsencrypt/renewal.log

Problème

invalid PID number "" in "/run/nginx.pid"

pkill nginx

  • cd /etc/letsencrypt/renewal
  • Éditer le fichier avec son nom de domaine
  • Commenter la ligne comme ceci : #pre_hook = service nginx stop
  • Trouver la ligne suivante post_hook = service nginx start
  • La remplacer par: post_hook = service nginx restart

6 commentaires sur Renouveler automatiquement son certif Let’s Encrypt (one shot)

Leave a Reply

Votre adresse de messagerie ne sera pas publiée.


*