CitizenZ

Blog Libre, Geek & Crypto

Let's Encrypt et Nginx : config rapide sous Ubuntu

Rédigé par citizenz 2 commentaires
Voici un petit tuto simple, pratique et rapide pour configurer un certificat Let's Encrypt pour votre site web (avec Nginx). J'utilise un serveur Ubuntu 16.04.

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
CitizenZ : Geek quadra nivernais
fan d'ovalie, de musique, de linuxeries et de Net !

2 commentaires

#1  - Noob1er a dit :

Merci beaucoup,

Simple et clair, j'ai mis ça en place rapidement grâce à ces explications.

Répondre
#2  - citizenz a dit :

Avec plaisir ! winkcool

Répondre

Écrire un commentaire

 Se rappeler de moi sur ce site
Quelle est la dernière lettre du mot ohinp ?

Fil RSS des commentaires de cet article