Certbot & Let's Encrypt — obtention et renouvellement automatique de certificats SSL/TLS pour sécuriser vos services web avec Nginx.
Certbot est l'outil officiel de l'EFF pour obtenir et renouveler automatiquement des certificats Let's Encrypt — une autorité de certification gratuite et reconnue par tous les navigateurs.
Installez Certbot avec le plugin Nginx sur Debian / Ubuntu :
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
python3-certbot-nginx par
python3-certbot-apache. Le reste du guide reste identique en remplaçant
le flag --nginx par --apache.
Prérequis avant de demander un certificat :
server_name dans votre VirtualHost Nginx doit correspondre exactement au domaine pour lequel vous demandez le certificat.Certbot détecte automatiquement votre configuration Nginx, demande le certificat auprès de Let's Encrypt et met à jour votre configuration pour activer HTTPS :
sudo certbot --nginx
Certbot vous guidera de manière interactive :
server_name de vos VirtualHosts Nginx.Pour spécifier le domaine directement sans interaction :
sudo certbot --nginx -d monsite.fr -d www.monsite.fr
--staging pour éviter d'atteindre cette limite.
Lister tous les certificats installés et leurs dates d'expiration :
sudo certbot certificates
Simuler le renouvellement sans appliquer de changements (à faire avant toute intervention) :
sudo certbot renew --dry-run
sudo systemctl status certbot.timer
# Forcer le renouvellement immédiat (même si non expiré)
sudo certbot renew --force-renewal
# Renouveler uniquement un domaine spécifique
sudo certbot renew --cert-name monsite.fr
# Révoquer un certificat
sudo certbot revoke --cert-path /etc/letsencrypt/live/monsite.fr/cert.pem
# Supprimer un certificat et sa configuration
sudo certbot delete --cert-name monsite.fr
Les certificats générés sont stockés dans :
/etc/letsencrypt/live/monsite.fr/
├── cert.pem # Certificat du domaine
├── chain.pem # Chaîne intermédiaire
├── fullchain.pem # Certificat + chaîne (utilisé par Nginx)
└── privkey.pem # Clé privée (ne jamais partager)
certbot --nginx --staging).
-d monsite.fr -d www.monsite.fr pour couvrir toutes les URLs.
privkey.pem ne doit
jamais être accessible publiquement ni être versionné dans un dépôt Git.