
Vous allez voir c’est très simple !
On va commencer par stopper nginx le temps de l’installation car Let’s Encrypt a besoin du port 80 pour fonctionner.
service nginx stop
On va mettre à jour le serveur et installer git
apt-get update && apt-get upgrade
Ensuite on va cloner le repo et se placer dans le répertoire :
cd /tmp wget https://dl.eff.org/certbot-auto chmod a+x ./certbot-auto ./certbot-auto --help all
Après cette étape il faut générer le certificat via let’s encrypt, avec une clé RSA de 4096bits pour les plus parano.
Vous pouvez retirer le paramètre “–rsa-key-size 4096” la clé rsa sera de 2048bits (paramètre par défaut)
–standalone fait appel au serveur web de letsencrypt pour générer le certificat.
./certbot-auto --help ./certbot-auto certonly --standalone --rsa-key-size 4096
Différentes choses vont vous être demandées :
• Une adresse e-mail pour pouvoir vous transmettre et vous prévenir de l’expiration de vos certificats.
• Les domaines pour lesquels vous souhaitez générer le certificat (en général www.votresite.fr et votresite.fr)
• L’acceptation des conditions.



ou directement avec cette commande (sans interaction de notre part)
./certbot-auto certonly \ --standalone \ --rsa-key-size 4096 \ --agree-tos \ --email john.doe@mondedie.fr \ --domains mondedie.fr \ --domains www.mondedie.fr
Configuration de nginx avec le certificat
En premier lieu on va améliorer la configuration par défaut de nginx en suivant les recommandations le Mozilla.
Création du fichier params.conf
# nano /etc/nginx/ssl/params.conf ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_ecdh_curve secp384r1; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA"; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem; resolver 8.8.8.8;
Note : la directive max age de Strict-Transport-Security correspond à 6 mois.
Attention: Avec HSTS, une mauvaise gestion de votre configuration SSL peut amener votre domaine à être complètement inaccessible pour vos utilisateurs, merci d’utiliser ce header en toute connaissance de cause. Wikipédia
On n’oublie pas d’inclure le fichier params.conf entre les balises http {} dans le fichier nginx.conf
# nano /etc/nginx/nginx.conf http { include /etc/nginx/ssl/params.conf; }
Les fichiers générés par Let’s Encrypt sont placés dans le répertoire /etc/letsencrypt.
Si tout s’est bien passé, le certificat et la clé que vous venez de générer se trouvent donc dans /etc/letsencrypt/live/www.votresite.fr.
Exemple :
root@server:/etc/letsencrypt/live/www.votresite.fr# ls -l total 0 lrwxrwxrwx 1 root root 45 Nov 4 08:34 cert.pem -> ../../archive/www.votresite.fr/cert1.pem lrwxrwxrwx 1 root root 46 Nov 4 08:34 chain.pem -> ../../archive/www.votresite.fr/chain1.pem lrwxrwxrwx 1 root root 50 Nov 4 08:34 fullchain.pem -> ../../archive/www.votresite.fr/fullchain1.pem lrwxrwxrwx 1 root root 48 Nov 4 08:34 privkey.pem -> ../../archive/www.votresite.fr/privkey1.pem
Ce qui nous intéresse ici ce sont ces deux fichiers : fullchain.pem et privkey.pem.
Dans votre fichier de configuration du vhost nginx (/etc/nginx/sites-enabled/rutorrent.conf si vous utilisez celui-ci), il suffit donc de renseigner l’emplacement de la chaine de certificat et de la clé.
Exemple
server { listen 443 ssl; server_name www.votresite.fr; ssl_certificate /etc/letsencrypt/live/www.votresite.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.votresite.fr/privkey.pem; ## etc }
On redémarre nginx :
service nginx restart
Votre domaine est maintenant doté d’un certificat SSL signé par Let’s Encrypt.
Comment vérifier la configuration de nos certificats
Il y a quelques sites pour cela, en voici 2. Le but étant d’avoir un A+
Renouveler un certificat
service nginx stop ./certbot-auto renew service nginx start
Ou alors vous pouvez regénérer de nouveau le certificat avec ./certbot-auto certonly (cf voir au dessus)
Comments (0)