Surveillance d'expiration des certificats SSL
Se connecte en TLS à chaque domaine du parc, lit la date notAfter du certificat et classe l'urgence du renouvellement (OK / BIENTOT / URGENT) dans un tableau d'état.
Cas d'usage
Éviter le vendredi soir où le site e-commerce affiche une erreur de certificat parce que personne n'a vu venir l'échéance.
Prérequis
Python 3.9+ (bibliothèque standard)
Python
import socket
import ssl
from datetime import datetime, timezone
DOMAINES = ["exemple.fr", "api.exemple.fr", "shop.exemple.fr", "blog.exemple.fr"]
ctx = ssl.create_default_context()
print(f"{'domaine':<18} {'expire le':<12} {'restant':>8} état")
print("-" * 50)
for dom in DOMAINES:
with ctx.wrap_socket(socket.create_connection((dom, 443), 5),
server_hostname=dom) as s:
brut = s.getpeercert()["notAfter"]
fin = datetime.strptime(brut, "%b %d %H:%M:%S %Y %Z").replace(tzinfo=timezone.utc)
restant = (fin - datetime.now(timezone.utc)).days
etat = "OK" if restant > 30 else ("BIENTOT" if restant > 7 else "URGENT")
print(f"{dom:<18} {fin:%Y-%m-%d} {restant:>4} j {etat}")Résultat
domaine expire le restant état -------------------------------------------------- exemple.fr 2026-09-02 84 j OK api.exemple.fr 2026-07-29 49 j OK shop.exemple.fr 2026-06-28 17 j BIENTOT blog.exemple.fr 2026-06-14 3 j URGENT
SSLSécuritésocketMonitoringOps