Mise en place de Certbot sur Debian et nginx

Maintenant que j’ai un nom de domaine, un vps et du temps, je vais faire un petit article pour le déploiement de certbot sur linux. Mon infra est en debian + nginx. Je n’ai pas de linux de Redhat mais le procédé est similaire. Je vais pour le moment demander des certificats pour chaque domaine à let’s encrypt, un certificat wildcard serait intéressant mais comme mon infra est sur plusieurs serveurs il faut envoyer le certificat manuellement sur chaque serveur ou faire un script, certbot sur chaque serveur est plus rapide.

Installation sous Debian

Les commandes certbot doivent être exectuées en tant qu’utilisateur root

Installation

On commence par installer le module python de certbot:

apt install certbot python3-certbot-nginx

Pour vérifier l’état de l’installation et la version de certbot installée:

 certbot --version

Pour la commande suivante, la liste des sites actif sur nginx peux être obtenu avec la commande suivante en tant que root: nginx -T et la regex suivante pour n’avoir que les server_name: ``nginx -T | grep “^[^#].*server_name "

Ici, je vais mettre en place le sous domaine barcode.loonaire.fr:

certbot --nginx -d barcode.loonaire.fr

La commande va demander un certitifcat pour barcode.loonaire.fr et en indiquant l’option –nginx, la configuration nginx va être modifiée pour prendre en compte le certificat.

Au moment de la mise en place, le programme demande une adresse mail puis si on souhaite que l’adresse mail soit partagée. Ensuite le certificat se mettra automatiquement en place.

Renouvellement automatique de certificat

Pour vérifier que le certificat peux se renouveler, on peux utiliser la commande:

certbot renew --dry-run

Vérifier le timer et savoir quand certbot fera une vérification et renouvellement de certificat si besoin :

systemctl status certbot.time