Erreurs
❌ Erreur SSL/TLS "ERR_CERT_DATE_INVALID — Certificat expiré" — Causes et Solutions
🔒 SSL / TLS
Le certificat SSL/TLS a dépassé sa date d'expiration
L'erreur
ERR_CERT_DATE_INVALID (ou Your connection is not private) signifie que le certificat SSL du serveur a dépassé sa date de validité. Tous les navigateurs bloquent la connexion — les visiteurs voient une page d'avertissement rouge.⚠️ Causes possibles
Renouvellement automatique non configuré
Certbot ou acme.sh n'a pas de cron/timer pour renouveler automatiquement
Erreur lors du renouvellement automatique
Le cron existe mais échoue silencieusement — port 80 fermé, DNS incorrect
Certificat géré manuellement oublié
Un certificat acheté chez un registrar a expiré sans alerte
Horloge système incorrecte
La date système du serveur est incorrecte — SSL refuse les connexions
Let's Encrypt rate limit atteint
Trop de demandes de certificats — limite 5 par domaine par semaine
Changement de serveur non suivi
Migration vers un nouveau serveur sans transférer/renouveler les certificats
🔧 Solutions étape par étape
1
Vérifier l'expiration du certificat
# Voir la date d'expiration d'un site
echo | openssl s_client -connect monsite.fr:443 2>/dev/null | \
openssl x509 -noout -dates
# Voir les certificats locaux et leur expiration
openssl x509 -in /etc/letsencrypt/live/monsite.fr/cert.pem -noout -dates
openssl x509 -in /etc/ssl/certs/mon-cert.pem -noout -dates
# Script de vérification multi-sites
for domain in monsite.fr blog.monsite.fr api.monsite.fr; do
expiry=$(echo | openssl s_client -connect $domain:443 2>/dev/null | \
openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
echo "$domain expire le : $expiry"
done
# Certbot — voir tous les certificats gérés
certbot certificates2
Renouveler avec Certbot
# Renouveler tous les certificats Certbot certbot renew # Forcer le renouvellement même si pas expiré certbot renew --force-renewal # Renouveler un domaine spécifique certbot renew --cert-name monsite.fr # Après renouvellement — recharger le serveur web systemctl reload nginx # ou systemctl reload apache2 # Tester le renouvellement sans l'appliquer certbot renew --dry-run # Debug si le renouvellement échoue certbot renew --dry-run --debug-challenges
3
Configurer le renouvellement automatique
# Méthode 1 : cron (classique) crontab -e # Ajouter : 0 3 * * * certbot renew --quiet && systemctl reload nginx # Méthode 2 : systemd timer (recommandé Debian/Ubuntu) # Vérifier que le timer est actif systemctl status certbot.timer systemctl enable certbot.timer # Méthode 3 : cron système cat /etc/cron.d/certbot # Doit contenir quelque chose comme : # 0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew # Tester que le port 80 est accessible (requis pour Let's Encrypt HTTP challenge) curl -I http://monsite.fr/.well-known/acme-challenge/test
4
Renouveler un certificat OpenSSL manuel
# Si certificat auto-signé — regénérer openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/mon-key.pem \ -out /etc/ssl/certs/mon-cert.pem -days 365 -nodes \ -subj "/CN=monsite.local/O=MonEntreprise/C=FR" # Si certificat signé par une CA interne # Générer une nouvelle CSR openssl req -new -newkey rsa:4096 -nodes \ -keyout mon-site.key -out mon-site.csr \ -subj "/CN=monsite.fr/O=MonEntreprise/C=FR" # Envoyer la CSR à votre CA pour signature # Puis installer le nouveau certificat # Nginx — recharger après changement nginx -t && systemctl reload nginx
5
Mettre en place des alertes d'expiration
# Script d'alerte par email (à mettre en cron)
#!/bin/bash
DOMAIN="monsite.fr"
ALERT_DAYS=30
EXPIRY=$(echo | openssl s_client -connect $DOMAIN:443 2>/dev/null | \
openssl x509 -noout -enddate | cut -d= -f2)
EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s)
NOW_EPOCH=$(date +%s)
DAYS_LEFT=$(( ($EXPIRY_EPOCH - $NOW_EPOCH) / 86400 ))
if [ $DAYS_LEFT -lt $ALERT_DAYS ]; then
echo "ALERTE: Certificat $DOMAIN expire dans $DAYS_LEFT jours !" | \
mail -s "Certificat SSL expirant bientôt" admin@monentreprise.fr
fi
# Ou via Zabbix — item externe :
# zabbix_agentd -t ssl.cert.expiry[monsite.fr,443]🛡️ Comment éviter cette erreur
- ✅ Utiliser Let's Encrypt avec renouvellement automatique via systemd timer — zéro intervention manuelle
- ✅ Mettre en place un monitoring de l'expiration des certificats (Zabbix, UptimeRobot, script cron)
- ✅ Pour les certificats achetés (wildcards), créer un rappel dans le calendrier 60 jours avant l'expiration
- ✅ Tester le renouvellement automatique avec
certbot renew --dry-runaprès installation
Ajouter Les Fibrés à mes sources préférées
Retrouvez plus souvent nos guides dans vos résultats Google