可以直接给他一个开通了ssl证书的网站域名,就能算出ssl证书是否过期,还剩多少天,适合ssl证书远程监控报警,代码如下:
import ssl import socket from datetime import datetime def check_ssl_expiry(hostname, port=443): ssl_context = ssl.create_default_context() conn = ssl_context.wrap_socket(socket.socket(socket.AF_INET), server_hostname=hostname) # 3秒应该足以建立连接 conn.settimeout(3.0) try: conn.connect((hostname, port)) ssl_info = conn.getpeercert() except Exception as e: print(f"Error: {e}") return None finally: conn.close() # 获取证书的过期时间 expire_date = datetime.strptime(ssl_info['notAfter'], '%b %d %H:%M:%S %Y %Z') # 当前时间 current_date = datetime.utcnow() # 打印剩余天数 days_remaining = (expire_date - current_date).days return days_remaining # 测试函数,查看www.example.com的证书有效期 days_left = check_ssl_expiry('www.bfw.wiki') if days_left is not None: if days_left > 0: print(f"The SSL certificate will expire in {days_left} days.") else: print("The SSL certificate has expired or is about to expire.")
网友回复