Certbot : Automatisation des Certificats SSL
Installez et configurez Certbot pour une gestion automatique de vos certificats.
Certbot est le client officiel de Let's Encrypt, développé par l'EFF (Electronic Frontier Foundation). Il automatise l'obtention, l'installation et le renouvellement des certificats SSL gratuits. Avec Certbot correctement configuré, vous n'avez plus jamais à vous soucier manuellement de vos certificats.
Certbot propose des plugins pour les serveurs web les plus courants (Apache, Nginx) qui configurent automatiquement HTTPS. Il peut également fonctionner en mode standalone ou webroot pour les configurations personnalisées.
Ce guide couvre l'installation de Certbot, la configuration pour différents serveurs web, et les options avancées comme les hooks et les wildcards. Vous aurez tous les outils pour automatiser complètement vos certificats SSL.
Fonctionnalités de Certbot
Ce que Certbot peut faire pour vous :
- Obtention automatique : demande et obtient des certificats Let's Encrypt en quelques commandes, avec validation automatique du domaine.
- Configuration serveur : les plugins Apache et Nginx modifient automatiquement la configuration pour activer HTTPS.
- Renouvellement automatique : un timer systemd vérifie quotidiennement et renouvelle les certificats proches de l'expiration.
- Hooks personnalisés : exécutez des scripts avant, pendant, ou après le renouvellement pour des actions personnalisées.
Installation de Certbot
Installation selon votre système :
- Ubuntu/Debian : apt install certbot python3-certbot-nginx ou python3-certbot-apache selon votre serveur.
- CentOS/RHEL : dnf install certbot python3-certbot-nginx avec le dépôt EPEL activé.
- Docker : utilisez l'image officielle certbot/certbot pour des environnements conteneurisés.
- Snap (universel) : snap install --classic certbot fonctionne sur la plupart des distributions Linux.
Première Configuration
Obtenez votre premier certificat :
- Mode Nginx/Apache : certbot --nginx ou certbot --apache pour une configuration automatique complète.
- Mode Webroot : certbot certonly --webroot -w /var/www/html -d example.com si vous préférez configurer manuellement.
- Mode Standalone : certbot certonly --standalone -d example.com quand aucun serveur web n'est en cours.
- Vérification : certbot certificates liste tous vos certificats avec leurs dates d'expiration.
Commandes Certbot Essentielles
Les commandes les plus utilisées :
#!/bin/bash
# Installation (Ubuntu/Debian avec Nginx)
apt update
apt install certbot python3-certbot-nginx
# Obtenir un certificat avec configuration auto Nginx
certbot --nginx -d example.com -d www.example.com
# Obtenir un certificat sans modifier la config
certbot certonly --nginx -d example.com
# Mode webroot (serveur déjà configuré)
certbot certonly --webroot -w /var/www/html -d example.com
# Certificat wildcard (nécessite DNS)
certbot certonly --manual --preferred-challenges dns -d "*.example.com" -d example.com
# Lister les certificats
certbot certificates
# Simuler un renouvellement
certbot renew --dry-run
# Révoquer un certificat
certbot revoke --cert-name example.com
# Supprimer un certificat
certbot delete --cert-name example.com
# Hook de renouvellement (recharger Nginx)
certbot renew --deploy-hook "systemctl reload nginx"
Le mode --nginx est le plus simple pour la plupart des cas. Utilisez --webroot si vous voulez contrĂ´ler la configuration manuellement.
Bonnes Pratiques Certbot
Configurez Certbot pour un fonctionnement optimal :
- Utilisez les hooks : configurez des deploy-hooks pour recharger automatiquement le serveur web après renouvellement.
- Testez régulièrement : exécutez certbot renew --dry-run après toute modification de configuration pour valider.
- Sauvegardez /etc/letsencrypt : ce répertoire contient vos clés privées et configurations. Incluez-le dans vos sauvegardes.
- Surveillez les logs : vérifiez périodiquement /var/log/letsencrypt/letsencrypt.log pour détecter les problèmes.
Checklist Certbot
- Certbot installé et à jour
- Certificat obtenu pour tous les domaines
- Timer systemd actif
- Deploy-hook configuré
- --dry-run réussit
- Surveillance externe active
Questions Fréquentes
Certbot vs acme.sh, lequel choisir ?
Certbot est plus accessible aux débutants avec ses plugins. acme.sh est un script shell pur, plus léger et sans dépendances Python.
Comment utiliser Certbot avec un CDN/proxy ?
Utilisez le challenge DNS-01 au lieu de HTTP-01. Le challenge DNS fonctionne mĂŞme si le trafic HTTP passe par un CDN.
Puis-je utiliser Certbot sur Windows ?
Officiellement Certbot est pour Linux/macOS. Sur Windows, utilisez win-acme ou Certify the Web.
Comment obtenir un certificat pour plusieurs domaines ?
Ajoutez plusieurs -d : certbot --nginx -d example.com -d www.example.com -d blog.example.com.
Le renouvellement automatique ne fonctionne pas, pourquoi ?
Vérifiez que le timer est actif avec systemctl status certbot.timer. Consultez les logs pour les erreurs.
Comment migrer les certificats vers un nouveau serveur ?
Copiez entièrement /etc/letsencrypt vers le nouveau serveur. Les certificats et clés seront fonctionnels.
Automatisez avec Certbot
Certbot simplifie considérablement la gestion des certificats SSL. Une fois configuré, il gère tout automatiquement : obtention, installation, et renouvellement.
Combinez Certbot avec la surveillance MoniTao pour une tranquillité d'esprit totale. Vous serez alerté en cas de problème de renouvellement avant que le certificat n'expire.
Liens utiles
PrĂŞt Ă dormir sur vos deux oreilles ?
Commencez gratuitement, sans carte bancaire.