Let’s Encrypt est une autorité de certification propulsée par l’Internet Security Research Group (ISRG) qui vise à augmenter significativement la part de trafic HTTPS sur les sites web.
Elle est soutenue par des ténors d’internet comme : l’Electronic Frontier Foundation (EFF), la Fondation Mozilla, Akamai, Cisco Systems, PlanetHoster, OVH, …
Si vous passez par Cloudflare, SSL est déjà intégré, donc vous devrez juste modifier la configuration du port 80 :
server { listen 80; server_name faq.linkuff.com; access_log /.../access.log; error_log /.../error.log; if ($http_x_forwarded_proto = "http") { return 301 https://$server_name$request_uri; }
Activation SSL
Avant toute chose, pensez à activer le SSL sur votre serveur :
$ sudo a2enmod ssl
Installation de Let’s Encrypt
Nous allons nous placer dans le dossier /root/ et cloner le repo :
$ cd /root/ $ git clone https://github.com/letsencrypt/letsencrypt $ cd letsencrypt/ $ ./letsencrypt-auto
Générer les certificats
On va commence par arrêter le serveur web Nginx pour permettre le mode standalone :
$ sudo service nginx stop
Puis on va exécuter le script :
$ ./certbot-auto certonly --standalone --rsa-key-size 4096
certonly permet d’obtenir un certificat, mais de ne pas l’installer automatiquement.
–standalone va exécuter un petit serveur Web autonome pour l’authentification. Ceci nous évitera d’installer un plugin à Nginx.
–rsa-key-size 4096 va générer un certificat avec une clef RSA de 4096 bits. La valeur par défaut est de 2048.
Configurer Nginx
Voici un exemple de configuration Nginx :
server { listen 443; server_name faq.linkuff.com; access_log /.../access.log; error_log /.../error.log; ssl on; ssl_certificate /etc/letsencrypt/live/m.diariste.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/m.diariste.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m;
Redémarer nginx :
$ sudo service nginx start
Renouveler les certificats
$ sudo service nginx stop $ ./letsencrypt-auto renew $ sudo service nginx start
Cas de Cloudflare
./letsencrypt-auto certonly -a webroot --webroot-path=/tmp/well-known --expand -d site.com
location ~ /\.well-known/acme-challenge { allow all; root /tmp/well-known; } location ~ \.well-known { allow all; }