- Modifié
Automatiser le renouvellement des certificats Let's Encrypt avec acme.sh
note : Dans ce tuto il faudra remplacer mondedie.fr par votre nom de domaine
Pour commencer, on va créer un dossier web pour le challenge let's encrypt
mkdir -p /var/www/acme/.well-known/acme-challenge
mkdir -p /etc/nginx/ssl/live/mondedie.fr
Ajouter le fichier de configuration default.conf dans /etc/nginx/sites-enabled
# vi /etc/nginx/sites-enabled/default.conf
server {
listen 80;
charset utf-8;
server_name mondedie.fr www.mondedie.fr;
root /var/www/acme;
location /.well-known/acme-challenge {}
}
On recharge nginx
nginx -t # on vérifie la configuration nginx avant
service nginx restart
On installe acme.sh
wget -O - https://get.acme.sh | sh
source ~/.bashrc
On génère un certificat
acme.sh --issue \
--keylength 4096 \
--webroot /var/www/acme \
--domain mondedie.fr \
--domain www.mondedie.fr
On configure les vhosts nginx concerné par le certificat
# vi /etc/nginx/sites-enabled/mondedie.fr.conf
server {
listen 443 ssl http2;
server_name mondedie.fr www.mondedie.fr;
ssl_certificate /etc/nginx/ssl/live/mondedie.fr/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/mondedie.fr/privkey.pem;
include /etc/nginx/conf.d/ssl.conf;
...
}
On crée un fichier de configuration ssl pour nginx (c'est une suggestion vous pouvez modifier ce fichier à votre guise)
# vi /etc/nginx/conf.d/ssl.conf
ssl_protocols TLSv1.2;
ssl_ecdh_curve X25519:P-521:P-384:P-256;
ssl_ciphers "EECDH+CHACHA20:EECDH+AES";
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 15m;
ssl_session_tickets off;
On installe le certificat généré
acme.sh \
--install-cert -d mondedie.fr \
--cert-file /etc/nginx/ssl/live/mondedie.fr/cert.pem \
--key-file /etc/nginx/ssl/live/mondedie.fr/privkey.pem \
--ca-file /etc/nginx/ssl/live/mondedie.fr/chain.pem \
--fullchain-file /etc/nginx/ssl/live/mondedie.fr/fullchain.pem \
--reloadcmd "service nginx restart"
Pour mettre à jour acme.sh
acme.sh --upgrade
Normalement, une tâche cron renouvelle automatiquement votre certificat ssl, vous consulter la tâche cron ici
cron crontab -l
Sinon vous pouvez renouveler le certificat manuellement
acme.sh --renew -d mondedie.fr