Tous les guides de déploiement Déploiement

Comment vérifier l'expiration d'un certificat SSL

Un certificat SSL expiré provoque l’affichage d’un avertissement de sécurité pleine page par les navigateurs, empêchant les visiteurs d’accéder à votre site. Voici comment vérifier la date d’expiration de votre certificat et mettre en place une surveillance.

Vérifier depuis votre navigateur

  1. Visitez votre site avec https://
  2. Cliquez sur l’icône du cadenas dans la barre d’adresse
  3. Cliquez sur “Certificat” ou “La connexion est sécurisée” → “Le certificat est valide”
  4. Cherchez la date “Valide jusqu’au” ou “Expire le”

Vérifier avec OpenSSL (ligne de commande)

Vérification à distance (depuis n’importe quelle machine)

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate

Sortie : notAfter=Aug 5 12:00:00 2026 GMT

Vérification de fichier local

openssl x509 -noout -enddate -in /etc/ssl/gethttps/fullchain.pem

Vérifier tous les détails en une fois

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -subject -issuer -dates

Vérifier avec un script en une ligne

Vérifier si un certificat expire dans les 30 jours :

if openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -checkend 2592000 > /dev/null 2>&1; then
  echo "Le certificat est valide pour au moins 30 jours supplémentaires"
else
  echo "ATTENTION : Le certificat expire dans moins de 30 jours !"
fi

Vérifier plusieurs domaines en une fois

Si vous gérez plusieurs domaines, vérifiez-les tous dans une boucle :

for domain in example.com www.example.com api.example.com; do
  expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
  echo "$domain — expire : $expiry"
done

Surveillance automatisée avec cron

Créez une tâche cron quotidienne qui vous envoie un e-mail lorsqu’un certificat est à moins de 30 jours de son expiration :

#!/bin/bash
# Enregistrer sous /usr/local/bin/check-ssl-expiry.sh

DOMAINS="example.com www.example.com api.example.com"
WARN_DAYS=30
WARN_SECS=$((WARN_DAYS * 86400))

for domain in $DOMAINS; do
  if ! echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | \
    openssl x509 -noout -checkend $WARN_SECS > /dev/null 2>&1; then
    echo "ATTENTION : le certificat de $domain expire dans moins de $WARN_DAYS jours" | \
      mail -s "Alerte expiration SSL : $domain" admin@example.com
  fi
done

Ajouter à la crontab : 0 9 * * * /usr/local/bin/check-ssl-expiry.sh

Configurer des services de surveillance

Pour une approche plus robuste, utilisez un service de surveillance :

MéthodeCommentCoûtOptions d’alerte
Rappel calendrierDéfinir 60 jours après l’émissionGratuitManuel
Script cronExécuter le script de vérification quotidiennementGratuitE-mail
UptimeRobotAjouter un moniteur SSL, définir le seuil d’alerteOffre gratuiteE-mail, Slack, webhook
Better UptimeSurveillance SSL avec gestion d’incidentsOffre gratuiteE-mail, SMS, Slack
Renouvellement automatique Certbotcertbot renew via timer systemdGratuitEmpêche entièrement l’expiration

Pour les certificats 90 jours de Let’s Encrypt, renouvelez au jour 60 (marge de 30 jours).

Quels détails du certificat dois-je vérifier ?

Au-delà de la date d’expiration, vérifiez périodiquement :

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text | grep -E 'Subject:|Issuer:|Not After|DNS:'

Cela affiche :

  • Subject/SAN — le certificat couvre les bons domaines
  • Issuer — émis par la CA attendue (par ex. Let’s Encrypt)
  • Not After — date d’expiration
  • Noms DNS — tous les noms de domaine dans le champ SAN

Questions fréquemment posées

Que se passe-t-il quand un certificat expire ?

Les navigateurs affichent un avertissement pleine page comme “Votre connexion n’est pas privée” (Chrome) ou “Avertissement : Risque potentiel de sécurité” (Firefox). La plupart des visiteurs quitteront immédiatement. Les moteurs de recherche peuvent également déclasser ou désindexer vos pages jusqu’au renouvellement du certificat.

À quelle fréquence dois-je vérifier ?

Si vous avez un renouvellement automatique (Certbot), vérifiez mensuellement comme filet de sécurité. Si vous renouvelez manuellement (GetHTTPS), vérifiez au jour 50 et définissez un rappel ferme au jour 60. Avec la validité de 47 jours à partir de 2029, la surveillance devient encore plus critique.

Puis-je vérifier l’expiration sans accès à la ligne de commande ?

Oui. Des outils en ligne comme SSL Labs Server Test et SSL Checker de SSL Shopper affichent les détails du certificat, y compris les dates d’expiration — entrez simplement votre domaine. Les DevTools du navigateur le montrent également (icône du cadenas → Détails du certificat).

Que faire si mon certificat a déjà expiré ?

Renouvelez immédiatement. Visitez GetHTTPS pour obtenir un nouveau certificat, remplacez les fichiers sur votre serveur et rechargez le serveur web. Le processus prend 5 minutes. Il n’y a aucune pénalité pour avoir laissé un certificat expirer — renouvelez et installez simplement le nouveau.

Puis-je surveiller plusieurs domaines depuis un seul script ?

Oui. Voici un script qui vérifie tous vos domaines et affiche les jours restants :

#!/bin/bash
for domain in example.com www.example.com api.example.com; do
  expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
  days_left=$(( ($(date -d "$expiry" +%s) - $(date +%s)) / 86400 ))
  if [ "$days_left" -lt 30 ]; then
    echo "ATTENTION $domain : $days_left jours restants"
  else
    echo "OK $domain : $days_left jours restants"
  fi
done

Remarque : la syntaxe date -d est spécifique à Linux. Sur macOS, utilisez date -j -f "%b %d %H:%M:%S %Y %Z".

Articles connexes

Premiers pas 2026-05-07
Comment renouveler un certificat Let's Encrypt
Les certificats Let's Encrypt expirent tous les 90 jours. Apprenez à renouveler avec GetHTTPS (manuel) ou Certbot (automatique), et préparez-vous pour la validité de 47 jours.
SSL et certificats 2026-05-07
Validité des certificats SSL : le passage à 47 jours expliqué
Le CA/Browser Forum a voté pour réduire la validité des certificats SSL à 47 jours d'ici 2029. Découvrez le calendrier, ce que cela signifie pour votre site web, et comment vous préparer.
Déploiement 2026-05-08
Comment installer un certificat SSL sur Nginx
Guide étape par étape pour installer un certificat SSL sur Nginx. Couvre l'upload des fichiers, la configuration complète du bloc serveur, les bonnes pratiques TLS, HTTP/2, HSTS, la configuration des redirections, les tests et le dépannage de 6 erreurs courantes.
Obtenez un certificat SSL gratuit dans votre navigateur
Aucune installation, aucun compte. Votre clé privée ne quitte jamais votre appareil.
Obtenir un certificat