Nginx : générer un certificat Let’s Encrypt

Après avoir vu comment installer et configurer Nginx en tant que reverse proxy et durcir la sécurité avec Crowdsec, je vais vous expliquer dans ce tutoriel, comment générer un certificat Let’s Encrypt.

Pour rappel, Let’s Encrypt est une autorité de certification gratuite, qui permet l’obtention de certificat SSL gratuitement.

Si vous souhaitez générer des certificats SSL sur Windows, je vous conseille l’utilisation de Certify The Web.

Pour ce tutoriel, j’ai utilisé un serveur sous Ubuntu 20.04 avec Nginx installé qui est utilisé en tant que reverse proxy.

Installer Certbot sur Ubuntu

Pour la génération des certificats Ubuntu (et linux généralement), on utilise certbot.

Certbot est un programme qui va se charger d’effectuer les vérifications de validation du domaine pour obtenir le certificat SSL et configurer le serveur Web, le virtualhost pour être plus précis.

Certbot va aussi se charger de renouveler le ou les certificats automatiquement.

La première étape, c’est d’installer Certbot pour Nginx sur le serveur, pour cela entrer la commande ci-dessous :

sudo apt install python3-certbot-nginx -y

Le certbot est installé, nous allons maintenant générer un certificat.

Générer un certificat Let’s Encrypt pour Nginx avec Certbot

Pour illustrer ce tutoriel, je vais utiliser le virtualhost ci-dessous :

Il est important dans la configuration du virtualhost, d’indiquer le paramètre server_name.

Comme on peut le voir sur la configuration, le virtualhost est pour le moment configurer sur le port 80.

Pour lancer le programme certbot, utiliser la commande ci-dessous :

sudo certbot

Lors de la première exécution, vous devez :

  • Indiquer une adresse email
  • Accepter le contrat du service
  • Indiquer si vous souhaitez partager l’adresse email.

À partir de là, voici comment cela se passe quand on souhaite générer un certificat :

La liste des sites s’affiche, entrer le numéro du site et valider.

Patienter pendant la demande de certificat …

Une fois, le certificat généré, l’assistant demande si on souhaite rediriger http vers https, dans l’exemple je choisis l’option 2.

Un message de confirmation s’affiche et on récupère la main sur la console.

Si on regarde de nouveau la configuration du virtualhost, on peut voir la configuration https en écoute sur le port 443 et que le trafic sur le port 80 est redirigé (301) vers le site en https.

Renouvelle automatique

Par défaut Certbot renouvelle automatiquement le certificat avant son expiration et le remplace.

Ci-dessous, on peut voir la tâche planifiée (cron).




Laisser un commentaire