通过python获取SSL证书到期时间
在前面的文章中曾介绍过如何通过openssl命令获取SSL证书的到期时间:通过zabbix监控ssl证书到期时间。
有人反馈实践中这种方式存在缺陷,可能会出现部分域名证书无法获取的情况,报错如下:
140323981043600:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: TRUSTED CERTIFICATE
0
接下来介绍另一种解决方式——通过python获取SSL证书到期时间,代码如下:
#!/bin/env python3
import ssl
import socket
import datetime
import sys
hostname = 'baidu.com'
port = 443
context = ssl.create_default_context()
with socket.create_connection((hostname, port)) as sock:
with context.wrap_socket(sock, server_hostname=hostname) as sslsock:
cert = sslsock.getpeercert()
expiry_date_str = cert['notAfter']
expiry_date_obj = datetime.datetime.strptime(expiry_date_str, '%b %d %H:%M:%S %Y %Z')
days_left = (expiry_date_obj - datetime.datetime.now()).days
print(days_left)
模板制作方式在此不做描述,可参考之前的文章,通过zabbix监控ssl证书到期时间。
以上就是这一期的分享内容。大家好,我是乐乐,专注运维技术研究与分享,关注我,了解更多运维小知识。如有问题,还可以到乐维社区进行留言提问,与广大运维技术爱好者共同探讨。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了