Automatiser le renouvellement SSL avec Let’s Encrypt en 2025 : guide complet

Publié le 17 août 2025 par Yannis Piot Pilot | Administration système
En 2025, un site web sans HTTPS est impensable.
Les navigateurs modernes (Chrome, Firefox, Safari, Edge) marquent désormais les sites non sécurisés comme “dangereux”, ce qui fait fuir les visiteurs et plombe le référencement.
La bonne nouvelle : grâce à Let’s Encrypt, vous pouvez obtenir gratuitement des certificats SSL/TLS valides et reconnus par tous les navigateurs.
La difficulté : ces certificats n’ont qu’une durée de vie de 90 jours. Sans automatisation du renouvellement, vous risquez de voir votre site passer en “connexion non sécurisée” du jour au lendemain.
Ce guide va vous expliquer en détail comment installer, configurer et surtout automatiser le renouvellement des certificats SSL Let’s Encrypt sur vos serveurs Linux, que vous soyez admin système, devops, ou simplement propriétaire d’un site web.
Nous allons non seulement voir comment faire, mais surtout pourquoi c’est indispensable, les risques si vous oubliez et comment intégrer cette gestion dans une approche DevOps moderne.
Pourquoi HTTPS est incontournable en 2025
Pourquoi ?
HTTPS chiffre les échanges entre le navigateur et le serveur. C’est devenu un standard de sécurité et de confiance.
Risque sans HTTPS
- Les données circulent en clair → interception possible (mots de passe, cartes bancaires).
- Le site est marqué comme non sécurisé dans les navigateurs.
- Le SEO chute : Google pénalise les sites en HTTP.
Exemple réel
- En 2022, une grande plateforme d’e-commerce indienne a perdu des milliers de clients après une fuite de données due à un site partiellement en HTTP.
- En 2024, Google a confirmé que plus de 98 % du trafic Chrome était désormais chiffré.
Solution
Mettre en place un certificat SSL via Let’s Encrypt, gratuit et automatisé.
Installer Let’s Encrypt (Certbot)
Pourquoi ?
Certbot est l’outil officiel recommandé par l’EFF pour gérer les certificats Let’s Encrypt.
Risque si ignoré
Installer manuellement un certificat SSL chaque trimestre est fastidieux et source d’erreurs.
Exemple
Des milliers de sites web sont tombés en 2023 car leurs administrateurs avaient oublié de renouveler manuellement les certificats.
Solution
Installation sur Debian/Ubuntu :
sudo apt update
sudo apt install certbot python3-certbot-nginx -yInstallation sur RHEL/CentOS :
sudo dnf install certbot python3-certbot-nginx -yObtenir un certificat SSL pour un domaine :
sudo certbot --nginx -d monsite.com -d www.monsite.comAutomatiser le renouvellement
Pourquoi ?
Les certificats Let’s Encrypt expirent après 90 jours. L’automatisation évite les interruptions de service.
Risque
- Site affiché en erreur : “Votre connexion n’est pas privée”.
- Perte de visiteurs, baisse SEO, perte de revenus.
Exemple réel
En 2021, un certificat Let’s Encrypt expiré a provoqué des coupures massives de services pour des millions d’appareils IoT.
Solution
Ajouter une tâche cron quotidienne :
0 3 * * * certbot renew --quietTester le renouvellement automatique :
sudo certbot renew --dry-runGérer plusieurs domaines et sous-domaines
Pourquoi ?
Un seul serveur peut héberger plusieurs sites ou applications (multi-vhosts).
Risque
Si tous les certificats ne sont pas renouvelés correctement, certains sites tomberont.
Exemple réel
Une PME française a vu ses sous-domaines tomber en cascade en 2023 car seul le domaine principal avait été renouvelé.
Solution
Certificat multi-domaine :
sudo certbot --nginx -d site1.com -d site2.com -d app.site1.comCertificat wildcard (*.domaine.com) :
sudo certbot -d "*.monsite.com" --manual --preferred-challenges dns certonlyAutomatiser la validation DNS via API
Pourquoi ?
Pour les wildcards, Let’s Encrypt nécessite une validation DNS. La gestion manuelle est impossible à long terme.
Risque
Oublier de mettre à jour les enregistrements TXT → certificat non renouvelé → site inaccessible.
Exemple réel
En 2022, un hébergeur a laissé expirer des centaines de certificats wildcard faute d’automatisation DNS.
Solution
Certbot propose des plugins DNS pour les principaux providers :
- Cloudflare :
sudo apt install python3-certbot-dns-cloudflare
certbot -d "*.monsite.com" --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/cloudflare.ini- OVH :
sudo apt install python3-certbot-dns-ovh- Route53 (AWS), Gandi, Google DNS, etc.
Sécuriser la configuration SSL/TLS
Pourquoi ?
Un certificat SSL n’est pas suffisant si le serveur accepte encore des protocoles faibles.
Risque
- Vulnérabilités type POODLE, BEAST, Heartbleed.
- Note médiocre sur SSL Labs → perte de crédibilité.
Exemple réel
En 2020, plus de 30 % des sites en HTTPS acceptaient encore TLS 1.0/1.1 (obsolètes).
Solution
Nginx :
ssl_protocols TLSv1.3;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
ssl_prefer_server_ciphers on;Tester la configuration sur SSL Labs.
Intégration DevOps (CI/CD, Kubernetes, Docker)
Pourquoi ?
En 2025, la plupart des applications sont déployées via conteneurs et orchestrateurs.
Risque
Sans intégration, vos pods ou containers tournent avec des certificats expirés.
Exemple réel
En 2023, une fintech européenne a subi une panne de 4h car un cluster Kubernetes n’avait pas renouvelé automatiquement ses certificats.
Solution
- Docker + Traefik :
Traefik gère automatiquement Let’s Encrypt :
traefik:
image: traefik
command:
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
- "[email protected]"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"- Kubernetes + cert-manager :
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: monsite-com
spec:
secretName: monsite-com-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
dnsNames:
- monsite.com
- www.monsite.comBonnes pratiques pour 2025
✅ Toujours tester le renouvellement (certbot renew --dry-run).
✅ Utiliser uniquement TLS 1.3.
✅ Automatiser DNS-01 pour les wildcards.
✅ Intégrer Let’s Encrypt dans CI/CD et Kubernetes.
✅ Monitorer la date d’expiration avec un script (alerte si < 15 jours).
Exemple de check :
echo | openssl s_client -connect monsite.com:443 -servername monsite.com 2>/dev/null | openssl x509 -noout -datesScripts de monitoring d’expiration
Pourquoi ?
Même avec un renouvellement automatisé, il est crucial d’avoir une surveillance indépendante. Si certbot plante, vous devez être prévenu avant que le certificat expire.
Risque
- Le script cron échoue en silence → certificat expiré → site hors ligne.
- Sans monitoring externe, vous découvrez le problème en même temps que vos utilisateurs.
Exemple réel
En 2023, un CDN majeur a connu une panne mondiale de plusieurs heures suite à un bug dans son système de renouvellement automatisé Let’s Encrypt.
Solution
Script Bash simple (alerte mail)
#!/bin/bash
DOMAINS=("monsite.com" "api.monsite.com" "blog.monsite.com")
ALERT_DAYS=15
for domain in "${DOMAINS[@]}"; do
exp=$(echo | openssl s_client -servername $domain -connect $domain:443 2>/dev/null | openssl x509 -noout -dates | grep notAfter | cut -d= -f2)
exp_date=$(date -d "$exp" +%s)
now_date=$(date +%s)
days_left=$(( ($exp_date - $now_date) / 86400 ))
if [ "$days_left" -lt "$ALERT_DAYS" ]; then
echo "ALERTE: certificat $domain expire dans $days_left jours !" | mail -s "Expiration SSL $domain" [email protected]
fi
doneScript Bash (alerte Telegram)
#!/bin/bash
BOT_TOKEN="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
CHAT_ID="987654321"
DOMAINS=("monsite.com" "api.monsite.com")
ALERT_DAYS=15
for domain in "${DOMAINS[@]}"; do
exp=$(echo | openssl s_client -servername $domain -connect $domain:443 2>/dev/null | openssl x509 -noout -dates | grep notAfter | cut -d= -f2)
exp_date=$(date -d "$exp" +%s)
now_date=$(date +%s)
days_left=$(( ($exp_date - $now_date) / 86400 ))
if [ "$days_left" -lt "$ALERT_DAYS" ]; then
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-d chat_id=$CHAT_ID \
-d text="⚠️ Certificat SSL de $domain expire dans $days_left jours !"
fi
done💡 Ces scripts peuvent être mis en cron (/etc/cron.daily/check_ssl.sh) pour surveiller vos certificats.
Dashboard Grafana SSL (prêt à importer)
Pourquoi ?
Grafana permet de centraliser l’état des certificats SSL sur un seul tableau de bord.
Risque
Si vous administrez plusieurs dizaines de domaines, difficile de suivre manuellement chaque expiration.
Exemple réel
Un hébergeur mutualisé en 2022 a laissé expirer des certificats sur 200 sous-domaines faute de visibilité globale.
Solution
Exemple de dashboard Grafana JSON pour suivre l’expiration des certificats stockés dans InfluxDB (mesure ssl_expiry_days).
{
"title": "SSL Certificates Monitoring",
"panels": [
{
"type": "stat",
"title": "Expiration SSL",
"targets": [
{
"measurement": "ssl_expiry_days",
"fields": ["value"]
}
],
"options": {
"reduceOptions": {"calcs": ["last"], "fields": ""},
"colorMode": "value",
"thresholds": {
"mode": "absolute",
"steps": [
{"color": "green", "value": null},
{"color": "orange", "value": 15},
{"color": "red", "value": 5}
]
}
}
}
]
}Résultat :
- Vert = > 15 jours restants
- Orange = entre 5 et 15 jours
- Rouge = < 5 jours
Vous pouvez compléter avec un graphique par domaine pour suivre les expirations dans le temps.
Erreurs fréquentes et comment les éviter
Oublier d’ouvrir le port 80 pour la validation HTTP
- Risque : Let’s Encrypt échoue à valider le domaine.
- Solution : s’assurer que le port 80 est ouvert au moment du challenge ACME.
Mauvaise configuration cron (pas d’output)
- Risque :
certbotéchoue sans log → certificat non renouvelé. - Solution : rediriger la sortie vers un fichier log.
0 3 * * * certbot renew --quiet >> /var/log/letsencrypt/renew.log 2>&1
Oublier les sous-domaines
- Risque : seul le domaine principal est renouvelé.
- Solution : lister tous les sous-domaines nécessaires dans la commande Certbot.
Utiliser TLS 1.0/1.1/1.2 en 2025
- Risque : sécurité faible, navigateur marque le site comme obsolète.
- Solution : forcer TLS 1.3 dans la configuration.
Checklist finale Let’s Encrypt 2025
✅ Certbot installé et configuré.
✅ Cron automatique testé avec --dry-run.
✅ Plugins DNS configurés pour wildcards.
✅ Scripts de monitoring actifs (alertes mail/Telegram).
✅ Dashboard Grafana importé pour suivi global.
✅ TLS 1.3 forcé, ciphers modernes uniquement.
✅ Logs de renouvellement vérifiés régulièrement.
Conclusion
En 2025, HTTPS n’est plus une option, c’est une condition minimale de confiance et de conformité.
Let’s Encrypt a démocratisé le SSL en le rendant gratuit et accessible, mais il impose une rigueur : des certificats courts (90 jours) et donc la nécessité de les renouveler automatiquement.
Avec Certbot, les plugins DNS, les intégrations modernes comme Traefik ou cert-manager, et surtout des outils de monitoring indépendants (scripts Bash + alertes, dashboard Grafana), vous pouvez garantir une gestion 100 % fiable et automatisée de vos certificats.
👉 Résultat :
- Vos sites restent toujours sécurisés.
- Vos utilisateurs naviguent en confiance.
- Vos équipes techniques gagnent du temps et dorment plus sereinement.
- Votre entreprise gagne en crédibilité et en SEO.
En clair : un HTTPS automatisé, surveillé et renforcé est aujourd’hui la base de toute infrastructure web sérieuse.
Cet article a été révisé et optimisé par une intelligence artificielle pour améliorer sa clarté et sa pertinence.