Comme décrit dans un article précédent, j'utilise un serveur nginx pour faire du reverse proxy. Je vais vous présenter ici comment mettre en place un certificat auto-signé Let's Encrypt sur ce serveur.
En premier lieu, il est nécessaire de rediriger les ports 80 et 443 de sa box vers le serveur web nginx. Je vous met ici pour exemple à quoi cela ressemble sur ma box SFR (les lignes 1 et 3 correspondent aux redirections en question).
Afin de s'assurer de ne pas rediriger les requêtes en http vers https automatiquement (nous verrons cela par la suite), il est nécessaire de désactiver les sites activés. Plusieurs solutions sont possibles, je vous en propose une :
Les fichiers de conf seront renommés en .tmp et ne seront donc plus pris en compte par nginx
Ajouter une ligne dans le fichier suivant :
Ajouter la ligne :
On redémarre le serveur web pour prendre en compte les paramétrages :
Installer certbot :
Exécuter certbot :
L'option -d permet de spécifier le ou les domaines séparés par des virgules
Une fois le certificat installé, on remet en place les fichiers de configuration. On peut le faire avec la commande suivante ou manuellement si on a peu de fichiers de configuration :
Recharger le serveur web :
Pour ajouter un domaine ou un sous-domaine
Si vous souhaitez ajouter un domaine ou un sous-domaine à votre certificat, c'est possible avec la commande suivante :
Il est nécessaire dans la commande de remettre les domaines et sous-domaines déjà certifiés
Les certificats Let's Encrypt sont gratuits mais leur inconvénient est qu'ils ne sont valables que 3 mois, il faut donc les renouveler. Si vous avez entré votre adresse mail lors de la création du certificat, vous recevrez plusieurs mails dans les semaines qui précèdent leur expiration.
Pour renouveler le certificat :
Il est possible d'automatiser cette tâche avec cron, je vous renvoi vers des articles qui traitent de cron. Cependant, je vous recommande de tester une fois ou deux le renouvellement manuel afin de vérifier que cela fonctionne.
Il est possible d'obtenir des informations sur le certificat installé (noms de domaines et sous-domaines, date de validité,...) :
Vous pouvez trouver d'avantages d'information sur la commande certbot et toutes ses options (elles sont nombreuses) :
User Guide - Certbot