Un certificat SSL expiré casse votre site web pour les visiteurs, endommage la confiance et nuit au SEO. Voici comment configurer des rappels automatiques pour ne jamais manquer une date de renouvellement.
Pourquoi le Monitoring SSL est Important
Que Se Passe-t-il Quand le SSL Expire
- Avertissements navigateur - "Votre connexion n'est pas privée"
- Trafic perdu - Les visiteurs partent immédiatement
- Impact SEO - Google pénalise les sites non sécurisés
- Échecs API - Connexions HTTPS rejetées
- Traitement des paiements - Problèmes de conformité PCI
Causes Courantes d'Expiration
- Oubli de renouveler manuellement
- Échec silencieux du renouvellement automatique
- Email parti dans les spams
- Email de contact changé
- Problèmes de l'autorité de certification
Méthode 1 : Utiliser un Service de Monitoring
Configurer le Monitoring Automatisé
L'approche la plus fiable est un monitoring SSL dédié :
- Ajoutez vos domaines au service de monitoring
- Configurez les seuils d'alerte (30, 14, 7, 1 jours)
- Ajoutez plusieurs destinataires email
- Activez les canaux de notification de secours
Exemple de Calendrier d'Alertes
| Jours Avant Expiration | Type d'Alerte |
|---|---|
| 60 jours | Email informatif |
| 30 jours | Email de rappel |
| 14 jours | Email d'avertissement |
| 7 jours | Email urgent |
| 3 jours | Critique + SMS |
| 1 jour | Urgence + Téléphone |
Méthode 2 : DIY avec des Scripts
Script Bash pour Vérifier
#!/bin/bash
# check-ssl-expiry.sh
DOMAIN=$1
DAYS_WARNING=30
EXPIRY=$(echo | openssl s_client -servername $DOMAIN -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 $DAYS_WARNING ]; then
echo "ATTENTION: SSL de $DOMAIN expire dans $DAYS_LEFT jours"
# Envoyer alerte email
echo "Le certificat SSL de $DOMAIN expire dans $DAYS_LEFT jours" | \
mail -s "Alerte Expiration SSL: $DOMAIN" admin@example.com
fi
Configuration Cron Job
# Vérifier SSL quotidiennement à 9h
0 9 * * * /path/to/check-ssl-expiry.sh example.com
0 9 * * * /path/to/check-ssl-expiry.sh api.example.com
0 9 * * * /path/to/check-ssl-expiry.sh app.example.com
Alternative Script Python
import ssl
import socket
from datetime import datetime
import smtplib
from email.mime.text import MIMEText
def check_ssl_expiry(domain, warning_days=30):
context = ssl.create_default_context()
with socket.create_connection((domain, 443)) as sock:
with context.wrap_socket(sock, server_hostname=domain) as ssock:
cert = ssock.getpeercert()
expiry = datetime.strptime(cert['notAfter'], '%b %d %H:%M:%S %Y %Z')
days_left = (expiry - datetime.now()).days
if days_left < warning_days:
send_alert(domain, days_left)
return days_left
def send_alert(domain, days):
msg = MIMEText(f"Le certificat SSL de {domain} expire dans {days} jours")
msg['Subject'] = f"Alerte Expiration SSL: {domain}"
msg['From'] = 'monitor@example.com'
msg['To'] = 'admin@example.com'
with smtplib.SMTP('localhost') as server:
server.send_message(msg)
# Vérifier plusieurs domaines
domains = ['example.com', 'api.example.com', 'app.example.com']
for domain in domains:
days = check_ssl_expiry(domain)
print(f"{domain}: {days} jours restants")
Méthode 3 : Rappels Calendrier
Configuration Manuelle Calendrier
- Trouvez la date d'expiration de votre certificat
- Créez des événements calendrier :
- 60 jours avant : "Examiner renouvellement SSL"
- 30 jours avant : "Renouveler certificat SSL"
- 7 jours avant : "URGENT : SSL expire bientôt"
- Invitez les membres de l'équipe
- Répétez pour chaque domaine
Obtenir la Date d'Expiration
# Vérifier la date d'expiration
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate
# Sortie : notAfter=Mar 15 12:00:00 2026 GMT
Méthode 4 : Automatisation Let's Encrypt
Renouvellement Auto Certbot
Les certificats Let's Encrypt se renouvellent automatiquement, mais vous devriez quand même monitorer :
# Vérifier le statut de renouvellement certbot
sudo certbot certificates
# Tester le renouvellement
sudo certbot renew --dry-run
# Cron job pour renouvellement (généralement configuré automatiquement)
0 0 * * * certbot renew --quiet
Monitorer le Renouvellement Auto
Même avec le renouvellement auto, configurez le monitoring car :
- Le renouvellement peut échouer silencieusement
- Les changements DNS peuvent casser la validation
- Problèmes de configuration serveur
- Les limites de taux peuvent bloquer le renouvellement
Bonnes Pratiques
Canaux d'Alerte Multiples
Ne vous fiez pas uniquement à l'email :
- Email à plusieurs destinataires
- Notifications Slack/Teams
- SMS pour alertes critiques
- Visibilité dashboard
Documenter Vos Certificats
Gardez un registre de tous les certificats :
| Domaine | Émetteur | Expiration | Auto-Renew | Propriétaire |
|---|---|---|---|---|
| example.com | Let's Encrypt | 2026-03-15 | Oui | DevOps |
| api.example.com | DigiCert | 2026-06-01 | Non | Sécurité |
Checklist Monitoring SSL
- Tous les domaines identifiés
- Service de monitoring configuré
- Seuils d'alerte multiples définis
- Membres de l'équipe notifiés
- Alertes de secours configurées
- Renouvellement auto vérifié
- Rappels calendrier ajoutés
- Registre des certificats créé
- Processus de renouvellement documenté
- Alerte test reçue
WizStatus monitore vos certificats SSL 24/7. Recevez des alertes email, Slack et SMS à 30, 14, 7 et 1 jour avant l'expiration. Ne manquez plus jamais un renouvellement.