通过python获取SSL证书到期时间

在前面的文章中曾介绍过如何通过openssl命令获取SSL证书的到期时间:通过zabbix监控ssl证书到期时间

有人反馈实践中这种方式存在缺陷,可能会出现部分域名证书无法获取的情况,报错如下:

140323981043600:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: TRUSTED CERTIFICATE0

接下来介绍另一种解决方式——通过python获取SSL证书到期时间,代码如下:

#!/bin/env python3import sslimport socketimport datetimeimport syshostname = 'baidu.com'port = 443context = 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()).daysprint(days_left)

模板制作方式在此不做描述,可参考之前的文章,通过zabbix监控ssl证书到期时间

以上就是这一期的分享内容。大家好,我是乐乐,专注运维技术研究与分享,关注我,了解更多运维小知识。如有问题,还可以到乐维社区进行留言提问,与广大运维技术爱好者共同探讨。

版权声明:
作者:感冒的梵高
链接:https://www.techfm.club/p/43976.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>