[Debian 9] Certificat SSL avec Let’s Encrypt pour nginx

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 !

Julien H

Passionné depuis toujours par l'informatique, je transforme ma passion en expertise. J'utilise quotidiennement les outils et systèmes Microsoft. Je ne délaisse pas mon côté ouvert, notamment via l'utilisation des OS Debian et Archlinux. L'infosec m'ouvre les yeux sur les enjeux actuels et futurs de l'IT.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Share This
Fermer
Fermer