SSL-certificate expiry watch в Python
Самоподписанный скрипт проверяет SSL сертификат и шлёт алерт за 14 дней до expiry.
Рецепт
python
import ssl, socket, datetime
def days_left(host: str, port: int = 443) -> int:
ctx = ssl.create_default_context()
with socket.create_connection((host, port), timeout=10) as sock:
with ctx.wrap_socket(sock, server_hostname=host) as ss:
not_after = ss.getpeercert()["notAfter"]
exp = datetime.datetime.strptime(not_after, "%b %d %H:%M:%S %Y %Z")
return (exp - datetime.datetime.utcnow()).days
if days_left("example.com") < 14:
raise SystemExit("SSL expiring soon")
То же самое в Enterno.io
У Enterno проверка SSL + мониторинг: автоматические письма + Telegram за 14 и 3 дня до expiry, проверка всей chain (intermediate, OCSP staple, cipher).