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 :

  1. Mode Nginx/Apache : certbot --nginx ou certbot --apache pour une configuration automatique complète.
  2. Mode Webroot : certbot certonly --webroot -w /var/www/html -d example.com si vous préférez configurer manuellement.
  3. Mode Standalone : certbot certonly --standalone -d example.com quand aucun serveur web n'est en cours.
  4. 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.

PrĂŞt Ă  dormir sur vos deux oreilles ?

Commencez gratuitement, sans carte bancaire.