Python 检测网站SSL证书到期时间脚本

网站使用的是freessl免费证书,经常过期了忘记更新,于是就有了下面的检测脚本,配合钉钉机器人临近到期了就告警。

import socket
import ssl
from datetime import datetime

import OpenSSL


def SSLExpireDateCheck(domain):
    socket.setdefaulttimeout(2)
    try:
        conn = socket.create_connection((domain, 443))
        sock = ssl.SSLContext(ssl.PROTOCOL_SSLv23).wrap_socket(conn, server_hostname=domain)
        certificate = ssl.DER_cert_to_PEM_cert(sock.getpeercert(True))
        data = OpenSSL.crypto.load_certificate(type=OpenSSL.crypto.FILETYPE_PEM, buffer=certificate)
        expire_time = datetime.strptime(data.get_notAfter().decode()[0:-1], '%Y%m%d%H%M%S')
        expire_days = (expire_time - datetime.now()).days
        return {'expire_time': str(expire_time), 'expire_days': expire_days}
    except Exception as e:
        print(e.args)
        return None


if __name__ == "__main__":
    result = SSLExpireDateCheck('www.baidu.com')
    print(result)
posted @ 2022-12-27 17:57  时光煮酒丶  阅读(42)  评论(0)    收藏  举报