[FR] SCRIPT FOR RENEW LETSENCRYPT CERTIFICATES

https 26/07/2017

J'utilise Let's Encrypt depuis plusieurs années pour tous mes sites (très certainement comme vous). Je ne vais pas expliquer les raisons, je pense qu'il y a suffisamment de blog qui parlent de ça. Mais en gros c'est valide (pas de l'auto-signé) et c'est gratuit (mais n'hésitez pas à faire un don par ici si vous le souhaitez).

C'est bien joli mais ce que j'ai trouvé de moins standard, c'est la méthode de renouvellement qui passe très souvent par des scripts tiers (développés et/ou adaptés). Fort heureusement il existe quelques outils pour ce faire, c'est ce que fait certbot par exemple.

Pour ma part, j'ai fait un peu comme tout le monde, via un script (en Bash) personnalisé mais très simple. En gros toutes mes configurations sont dans /etc/letsencrypt/configs/*.conf (un par domaine) et je lance un certonly dans le cas ou il reste moins de 8 jours. Bien évidemment, à adapter selon vos besoins mais l'idée est là.

Le script :

#!/bin/bash
# Renew my certificates LetsEncrypt

# Settings
MAILADMIN="hello@xorhak.org"
SERVICE="nginx"

for FILENAME in $(ls /etc/letsencrypt/configs/*.conf); do
	DOMAIN=$(echo ${FILENAME} | cut -d\/ -f5 | sed 's/\.conf//g')
	if ! openssl x509 -checkend 691200 -noout -in /etc/letsencrypt/live/${DOMAIN}/cert.pem
	then
		echo -ne "Let's Encrypt: launching renew certificate for ${DOMAIN}\n"
		/opt/letsencrypt/letsencrypt-auto --config /etc/letsencrypt/configs/${DOMAIN}.conf certonly
		if [ $? -ne 0 ]
		then
			ERRORLOG=$(tail /var/log/letsencrypt/letsencrypt.log)
			echo -ne "The Let's Encrypt certificate has not been renewed!\n\n" $ERRORLOG
			echo -ne "Hi,\n\nThe Let's Encrypt certificate has not been renewed for ${DOMAIN}!\nPlease check it for manualy renew.\n\nBye" | mutt -s "[$HOSTNAME] Let's Encrypt for ${DOMAINE}" $MAILADMIN
		else
			/usr/bin/systemctl reload $SERVICE
		fi
	fi
done

Le script tourne toutes les nuits, de toute manière il s'occupe de vérifier la date de validité du certificat avant de lancer son renouvellement (ici 8 jours). Voilà j'espère que ça peut dépanner :)

Enjoy!
XorHak

Tags

🌱 DJΞRFY 🚀

👨🏻‍💻 Tech Lead SRE. Like #Linux, #Apple, #Kubernetes, #Docker, #Unraid, #Traefik, #Hacking, #Chia. Member of @OpenChia Team 🌱 ¯\_(ツ)_/¯