Certbot
CertBot
Introduction à Certbot
Définition et utilité de Certbot
Certbot est un outil logiciel gratuit et open-source qui permet d'obtenir automatiquement des certificats SSL/TLS, fournis par Let's Encrypt, pour sécuriser les communications sur un site web. Il facilite également le processus de renouvellement de ces certificats.
Brève histoire et l'organisation Let's Encrypt
Let's Encrypt est une autorité de certification lancée en 2016 qui fournit des certificats gratuits dans le but de promouvoir un internet plus sécurisé. Certbot a été développé par l'EFF (Electronic Frontier Foundation) pour automatiser l'utilisation de ces certificats.
Installation de Certbot
Prérequis système
- Accès root ou sudo sur le serveur
- Serveur web déjà installé (Apache, Nginx, etc.)
- Noms de domaine pointant vers le serveur
Instructions d'installation
Debian/Ubuntu
https://certbot.eff.org/instructions?ws=nginx&os=ubuntufocal
-
Mettre à jour la liste des paquets :
sudo apt update -
Installer Certbot :
sudo snap install --classic certbot -
Préparation de la commande certbot :
sudo ln -s /snap/bin/certbot /usr/bin/certbotConfiguration de Certbot
Configuration initiale pour un site avec Nginx
Pour obtenir un certificat SSL/TLS et configurer automatiquement Nginx, exécutez la commande suivante :
sudo certbot --nginx- Certbot va rechercher les noms de domaine configurés dans Nginx et vous demandera de choisir ceux pour lesquels vous souhaitez obtenir un certificat.
- Vous devrez également fournir une adresse email pour les notifications de renouvellement et accepter les termes du service.
- Certbot modifiera ensuite la configuration de Nginx pour activer HTTPS.
Configuration pour plusieurs sites
Si vous avez plusieurs sites hébergés sur le même serveur Nginx, vous pouvez répéter le processus pour chaque site en exécutant à nouveau la commande
sudo certbot --nginxet en sélectionnant les noms de domaine appropriés lorsqu'ils vous sont présentés.Exemple
- Lancez la commande
sudo certbot --nginx - Entrez votre email.

- Acceptez les conditions d’utilisation.

- Refusez le partage de votre email.

- Selectionnez les sites sur lesquels vous voulez activer HTTPS.

Gestion des certificats SSL/TLS
Obtention d'un certificat
-
Utilisez la commande suivante pour obtenir un certificat pour un ou plusieurs domaines :
sudo certbot --nginx -d exemple.com -d www.exemple.com -
Certbot va valider la propriété du domaine et émettre un certificat.
Renouvellement automatique des certificats
-
Certbot crée une tâche cron ou systemd timer pour renouveler les certificats automatiquement avant qu'ils n'expirent.
-
Pour tester le processus de renouvellement, utilisez :
sudo certbot renew --dry-run
Visualisation et gestion des certificats existants
-
Pour lister tous les certificats Certbot installés sur le serveur :
sudo certbot certificates -
Pour supprimer un certificat :
sudo certbot delete --cert-name exemple.com
Commandes et options utiles de Certbot
Commandes de base
-
Obtenir un certificat :
sudo certbot --nginx -
Renouveler tous les certificats :
sudo certbot renew -
Annuler un certificat :
sudo certbot revoke --cert-path /chemin/vers/cert.pem
Options avancées et personnalisations
-
Changer l'email associé aux certificats :
sudo certbot update_account --email nouvel-email@example.com -
Modifier la configuration HTTPS :
sudo certbot --nginx --preferred-challenges http -d exemple.com -
Forcer le renouvellement d'un certificat :
sudo certbot renew --force-renewal
Bonnes pratiques et sécurité
Sécurisation de la configuration SSL/TLS
- Utilisez des paramètres de chiffrement forts dans la configuration de votre serveur web.
- Mettez régulièrement à jour vos logiciels serveurs pour corriger les vulnérabilités.
- Utilisez l'option
--hstspour ajouter la Strict-Transport-Security header et forcer le navigateur à toujours utiliser HTTPS.
Automatisation et planification du renouvellement
- Vérifiez que la tâche cron ou systemd timer est bien en place pour automatiser le renouvellement des certificats.
- Surveillez les logs de renouvellement pour vous assurer qu'il n'y a pas d'erreurs.
Surveillance et dépannage
-
Testez votre configuration SSL avec des outils en ligne comme SSL Labs' SSL Test.
-
Consultez les logs de Certbot en cas d'échec de renouvellement ou d'autres erreurs :
sudo less /var/log/letsencrypt/letsencrypt.log -
En cas de problème, utilisez l'option
--debugpour obtenir plus d'informations lors de l'exécution des commandes Certbot.
