Let's Encrypt et Nginx : config rapide sous Ubuntu
Rédigé par citizenz - - 2 commentaires
PRÉREQUIS : Certbot a besoin d'un fichier vhost Nginx existant, même minimaliste, mais avec une partie "server { }" déjà en place.
Pour tout changement effectué, vérifiez la syntaxe Nginx avec cette commande :
$ sudo nginx -t
1 - installation de Certbot (version stable) :
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt update
$ sudo apt install python-certbot-nginx
Si la commande add-apt-repository n'est pas disponible, installer les 2 paquets suivants :
$ sudo apt install software-properties-common python-software-properties
2 - Obtention d'un certificat SSL Let's Encrypt :
$ sudo certbot --nginx -d example.com -d www.example.com
- Aucune autre option n'est à préciser. L'option --nginx s'occupe de tout, même de la config de votre fichier vhost !
- Vous remarquerez que Certbot a ajouté un fichier /etc/letsencrypt/options-ssl-nginx.conf qui comporte toutes les bonnes options.
- Si c'est votre première demande, vous devrez rentrer une adresse e-mail de contact et accepter les "termes du service". Vous devez ensuite choisir d'accepter les connexions HTTP et HTTPS ou seulement les connexions HTTPS pour votre site.
3 - Configuration supplémentaire avec Diffie-Hellman :
$ sudo mkdir -p /etc/nginx/ssl
$ sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
Puis dans votre fichier vhost nginx, ajoutez la ligne suivante :
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
Ajoutez également les lignes suivantes :
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/www.mondomaine.com/fullchain.pem;
# Google DNS, Open DNS, Dyn DNS
resolver 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 216.146.35.35 216.146.36.36 valid=300s;
resolver_timeout 3s;
Et relancer Nginx :
$ sudo /etc/init.d/nginx restart
4 - Renouvellement automatique des certificats
$ sudo crontab -e
15 3 * * * /usr/bin/certbot renew --quiet
Avec cette config (intégrant la config "par défaut" de certbot + l'ajout du Diffie Hellman), vous devriez obtenir un A sur SSL Labs (https://www.ssllabs.com/ssltest/ ).
SOURCES : https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04