Parce qu'il y a toujours une solution...

Comme tout serveur web, nginx supporte le SSL et les nouveaux protocoles de chiffrement. Pour configurer votre serveur web nginx avec Let’s Encrypt, la marche à suivre est assez simple et rapide… enfin presque !


Avant toute chose, vous devez stopper le service web – l’utilitaire ne pourra pas fonctionner si nginx est démarré. (service nginx stop)
La première étape consiste en l’installation et l’utilisation du client « Certbot« , qui est le nouveau nom de l’utilitaire de Let’s Encrypt. Pour pouvoir l’utiliser, il faut au préalable installer l’outil « git« , pour pouvoir récupérer les sources de Certbot.

apt update && apt install git -y

Pour être organiser et garder un serveur « propre », il va falloir télécharger les sources de Certbot dans /opt/, via cette commande :

cd /opt/ && git clone https://github.com/certbot/certbot

Le dossier des sources sera clôné dans « /opt/certbot« . Une fois le téléchargement terminé, dirigez-vous dans le dossier…

cd /opt/certbot/

Et lancez-y l’utilitaire grâce à cette commande spécifique :

chmod +x certbot-auto && ./certbot-auto certonly --standalone --email contact@computerz.solutions -d ndd.fr -d www.ndd.fr

Explications :

  • certbot-auto.sh : L’utilitaire est lancé permettant d’avoir l’accès à des fonctionnalités complémentaires et surtout, de pouvoir créer un certificat pour tout type de serveur web ;
  • certonly –standalone : Cet article étant basé sur un serveur web nginx, il faut spécifier à l’utilitaire qu’il sera utilisé pour un serveur web nginx – toutefois, l’utilitaire ne supporte pas encore pleinement nginx de façon automatisée. Il faut donc utiliser certbot en mode « certonly » pour obtenir les certificats et créer par nous-même la configuration pour le serveur web.
  • — email mail@ndd.fr : Lors de la première génération du certificat, vous devez spécifier une adresse e-mail de contact.
  • -d ndd.fr : « ndd.fr » est à remplacer par votre nom de domaine principal ;
  • -d www.ndd.fr : vous pouvez ajouter des sous-domaines (de votre domaine principal) en y saisissant « -d » suivi du sous-domaine correspondant. Attention, vous avez un nombre limite de sous-domaine à respecter (au maximum 5 sous-domaine par domaine par jour) ;

ComputerZ Solutions utilise Let’s Encrypt, ainsi la commande donne ceci :

chmod +x certbot-auto && ./certbot-auto certonly --standalone --email contact@computerz.solutions -d computerz.solutions -d www.computerz.solutions

Des paquets Python vont être installés, ils sont nécessaires pour certbot.
Ensuite, votre clé et votre certificat va être généré, ils seront accessibles dans « /etc/letsencrypt/live/ndd.fr/ » (pour rappel, « ndd.fr » correspond à votre nom de domaine). La partie quant à Let’s Encrypt s’arrête ici-même ! Il faut dès à présent configurer le serveur web nginx, pour qu’il puisse délivrer les pages web via HTTPS.


Dans votre fichier de configuration de site web nginx, vous devez ajouter ce bloc :

server {
listen 443 ssl http2;
#listen [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/ndd.fr/chain.pem;
ssl_trusted_certificate /etc/letsencrypt/live/ndd.fr/chain.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
# ssl optimizations
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:20m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 15s;
add_header Strict-Transport-Security "max-age=31536000";
...

Les trois petits points à la fin correspondent à la fin de votre fichier de configuration.

Dès à présent, le serveur nginx est prêt à fournir vos pages web via HTTPS. Pour valider les changements, enregistrez les modifications et rechargez le service nginx (service nginx reload). Ouvrez votre navigateur et accédez à votre serveur web, via « https://ip_server_web » – si votre configuration est correcte, vous devriez donc afficher votre page web de façon chiffrée, via SSL !