diff --git a/plugins/plugins/cert_expiration.py b/plugins/plugins/cert_expiration.py index dcf0953..2cad95e 100644 --- a/plugins/plugins/cert_expiration.py +++ b/plugins/plugins/cert_expiration.py @@ -1,6 +1,7 @@ import ssl import OpenSSL from datetime import datetime,timedelta +from socket import gaierror def cert_expiration(args): hostname = args['endpoint'].split(":")[0] @@ -10,15 +11,18 @@ def cert_expiration(args): except IndexError: port = 443 - cert = ssl.get_server_certificate((hostname, port)) + try: + cert = ssl.get_server_certificate((hostname, port)) + except gaierror: + return [False, "Failed to connect to server."] + x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert) expiration_date = datetime.strptime(f"{x509.get_notAfter().decode("UTF-8")[0:-1]}UTC", "%Y%m%d%H%M%S%Z") - status = "Success" if (expiration_date - timedelta(days = args['expiration_warning_days'])) < datetime.now(): - status = "Warning" + status = False else: - status = "Success" + status = True return [status, f"Expiration: {expiration_date}"]