Blog

Alerte expiration certificat SSL : combien de jours avant ?

Une alerte fixe à 30 jours ne convient plus aux certificats de 90 ou 47 jours. Comment choisir le bon seuil, vérifier l'expiration et router les alertes.

Par Constantin Boulanger Publié le Mis à jour le 7 min de lecture

« Votre connexion n'est pas privée. » Quand ce message s'affiche sur votre site, le mal est fait : visiteurs qui repartent, paniers abandonnés, appels du client. Un certificat SSL/TLS expiré est pourtant l'incident le plus prévisible qui soit, puisque sa date de fin est écrite dans le certificat lui-même. La vraie question n'est donc pas de savoir s'il faut une alerte d'expiration, mais combien de temps avant l'expiration être prévenu. Et la réponse « 30 jours avant », longtemps la norme, n'est plus la bonne.

Pourquoi les certificats expirent encore en 2026

Avec Let's Encrypt et le renouvellement automatique, on pourrait croire le problème réglé. En pratique, l'automatisation déplace le risque : le certificat n'expire plus parce qu'on a oublié de le renouveler, mais parce que le renouvellement a échoué sans que personne ne le voie. Les causes habituelles :

  • un changement DNS a cassé la validation (le domaine pointe désormais vers un CDN ou un autre serveur) ;
  • un enregistrement CAA n'autorise pas l'autorité de certification utilisée ;
  • la clé d'API DNS utilisée pour la validation DNS-01 a été révoquée ou a expiré ;
  • un pare-feu bloque le chemin /.well-known/acme-challenge/ ;
  • le certificat a été renouvelé sur le disque, mais le serveur web n'a jamais été rechargé ;
  • le renouvellement a eu lieu sur un seul des serveurs derrière le répartiteur de charge ;
  • la tâche planifiée a disparu lors d'une migration de serveur ;
  • le certificat est géré à la main : certificat payant, équipement réseau, serveur de messagerie.

Dans tous ces cas, seule une vérification externe du certificat réellement servi détecte le problème à temps.

Le problème du seuil fixe à 30 jours

Le seuil de 30 jours date de l'époque des certificats d'un an ou plus. Appliqué aux certificats actuels, il produit soit du bruit, soit un faux sentiment de sécurité.

Certificat Let's Encrypt de 90 jours

Les clients ACME comme Certbot renouvellent classiquement un certificat de 90 jours quand il lui reste environ 30 jours de validité. Une alerte à 30 jours se déclenche donc exactement au moment où le renouvellement normal devrait avoir lieu. Résultat : une alerte à chaque cycle, alors que tout fonctionne. Au bout de quelques semaines, l'équipe ne lit plus ces alertes, et le jour où le renouvellement échoue vraiment, l'alerte passe inaperçue.

Certificat de 47 jours (2029) ou de 45 jours

Le CA/Browser Forum a programmé la baisse de la durée maximale des certificats publics : 200 jours depuis le 15 mars 2026, 100 jours à partir du 15 mars 2027 et 47 jours à partir du 15 mars 2029. Let's Encrypt propose déjà des certificats de 45 jours en option et prévoit d'en faire la norme en 2028. Sur un certificat de 47 jours, une alerte à 30 jours se déclenche 17 jours après l'émission, soit bien avant la date de renouvellement prévue. L'alerte devient permanente, donc inutile.

Certificat annuel ou de 200 jours renouvelé à la main

À l'inverse, 30 jours peuvent être trop courts quand le renouvellement implique un bon de commande, une validation d'organisation (OV) ou l'intervention d'un prestataire. Dans ce cas, la première alerte doit arriver plus tôt.

La bonne règle : alerter quand le renouvellement aurait déjà dû avoir lieu

Une alerte d'expiration utile répond à une seule question : le processus de renouvellement a-t-il échoué, et me reste-t-il assez de temps pour intervenir ? Le seuil dépend donc de deux paramètres : la durée de vie du certificat et la façon dont il est renouvelé.

SituationRenouvellement normalPremière alerte conseilléeAlerte urgente
ACME, certificat de 90 joursvers 30 jours restantsvers 20 jours restants7 jours, puis 1 jour
ACME, certificat de 45 ou 47 joursvers 15 jours restants (aux deux tiers de la durée de vie)vers 10 jours restants7 jours, puis 1 jour
Renouvellement manuel, 200 jours ou plusselon votre procédure30 à 45 jours restants7 jours, puis 1 jour

Une règle simple couvre bien les certificats automatisés : placer la première alerte à environ un quart de la durée de vie du certificat, bornée entre 7 et 30 jours, puis déclencher des alertes urgentes à 7 jours et à 1 jour. Un certificat de 90 jours donne une première alerte à 22 jours : le client ACME a eu 8 jours pour renouveler, et il reste trois semaines pour corriger. Un certificat de 47 jours donne une première alerte à 11 jours. Un certificat de 200 jours ou plus plafonne à 30 jours.

Pour les certificats gérés à la main, ajoutez un rappel calendaire plus précoce, calé sur vos délais d'achat : ce n'est pas le rôle de l'alerte technique.

Vérifier soi-même la date d'expiration

Le certificat servi par un site

echo | openssl s_client -connect exemple.fr:443 -servername exemple.fr 2>/dev/null \
  | openssl x509 -noout -issuer -startdate -enddate

L'option -servername est indispensable : sans elle, un serveur qui héberge plusieurs sites peut renvoyer le certificat d'un autre domaine. La différence entre notBefore et notAfter vous donne la durée de vie du certificat, donc le seuil d'alerte adapté.

Tester dans un script

L'option -checkend renvoie un code de retour non nul si le certificat expire dans le nombre de secondes indiqué (ici 10 jours) :

echo | openssl s_client -connect exemple.fr:443 -servername exemple.fr 2>/dev/null \
  | openssl x509 -noout -checkend 864000 || echo "ALERTE : expiration dans moins de 10 jours"

Tous les serveurs, pas seulement le premier

Si le domaine répond sur plusieurs adresses IP, vérifiez chacune d'elles, en IPv4 comme en IPv6 :

for ip in $(dig +short A exemple.fr); do
  echo "== $ip"
  echo | openssl s_client -connect "$ip:443" -servername exemple.fr 2>/dev/null \
    | openssl x509 -noout -enddate
done
for ip in $(dig +short AAAA exemple.fr); do
  echo "== $ip"
  echo | openssl s_client -connect "[$ip]:443" -servername exemple.fr 2>/dev/null \
    | openssl x509 -noout -enddate
done

Les services de messagerie

Les certificats des serveurs SMTP et IMAP sont souvent oubliés, car aucun navigateur ne les affiche :

openssl s_client -starttls smtp -connect mail.exemple.fr:587 -servername mail.exemple.fr </dev/null 2>/dev/null \
  | openssl x509 -noout -enddate
openssl s_client -connect mail.exemple.fr:993 -servername mail.exemple.fr </dev/null 2>/dev/null \
  | openssl x509 -noout -enddate

Ce qu'il faut surveiller en plus de la date

  • Les variantes du domaine : exemple.fr et www.exemple.fr, et chaque sous-domaine exposé.
  • La correspondance du nom : un certificat valide mais émis pour un autre nom provoque la même erreur dans le navigateur.
  • La durée de vie : un certificat de plus de 200 jours émis avant mars 2026 signale probablement un renouvellement manuel, à automatiser avant l'étape des 100 jours en 2027.
  • La compatibilité CAA : si vos enregistrements CAA n'autorisent pas l'émetteur actuel, le prochain renouvellement échouera.
  • Les changements DNS : un changement d'enregistrement A ou CNAME est souvent la cause directe d'un échec de validation. Notre article sur la surveillance des modifications DNS détaille ce point.

Router les alertes pour qu'elles soient lues

Une alerte bien calibrée ne sert à rien si elle arrive dans une boîte e-mail que personne ne consulte. Distinguez deux niveaux :

  1. Première alerte (renouvellement probablement en échec, plusieurs jours de marge) : un récapitulatif quotidien ou un ticket suffit. Elle doit être traitée dans la semaine.
  2. Alerte urgente (7 jours, puis 1 jour, ou certificat déjà invalide) : notification immédiate dans un canal suivi en temps réel, Slack, Discord ou webhook vers votre outil d'astreinte.

Chaque alerte doit indiquer le domaine, le nombre de jours restants, l'émetteur et la durée de vie du certificat : ces informations suffisent souvent à deviner la cause. Un certificat Let's Encrypt à 20 jours de l'expiration, c'est un client ACME en échec ; un certificat Sectigo d'un an à 30 jours, c'est un renouvellement manuel à lancer.

Checklist

  • Chaque certificat est vérifié depuis l'extérieur, sur toutes ses adresses IP.
  • Les seuils d'alerte dépendent de la durée de vie du certificat, pas d'un délai fixe.
  • Les certificats renouvelés à la main ont un rappel calendaire en plus de l'alerte technique.
  • Les alertes urgentes arrivent en temps réel dans un canal suivi.
  • Les enregistrements CAA et les changements DNS sont surveillés en même temps que les certificats.
  • Les serveurs de messagerie sont inclus.

Recevoir la bonne alerte au bon moment

Pour un contrôle immédiat, notre vérificateur SSL gratuit affiche la date d'expiration, l'émetteur et le nombre de jours restants de n'importe quel domaine. Pour ne plus y penser, Domains Defender applique la règle décrite plus haut : première alerte à un quart de la durée de vie du certificat (entre 7 et 30 jours), alertes urgentes à 7 jours et à 1 jour, envoyées immédiatement, le reste regroupé dans un récapitulatif quotidien. Le plan gratuit surveille un domaine, avec son certificat, sa configuration DNS et l'expiration du nom de domaine.

À lire aussi