python3下检查ssl证书过期时间(续)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3下检查ssl证书过期时间(续)相关的知识,希望对你有一定的参考价值。

参考技术A

我之前写过一个脚本用于实现检查ssl证书并邮件通知的功能:
python3下检查ssl证书过期时间并邮件通知

但是在使用过程中,我发现了一个问题: 证书过期时间不准 。这种说法可能不是很准确,确切地说是:如果在一级域名下配置了子域名证书,且不同级证书过期时间不同,则之前的脚本可能会检查到一级域名的过期时间,并不会返回子域名证书过期时间,如此便会出现过期时间不准的情况。

于是我在网上找到一个可用的脚本(python3.6.5下亲测有效),链接如下:
https://gist.github.com/gdamjan/55a8b9eec6cf7b771f92021d93b87b2c?tdsourcetag=s_pctim_aiomsg

脚本具体内容我这里也贴一下,可按实际需求进行修改,使用前务必注意安装相关模块:

nginx多站点,ssl偏爱第一个证书

一个老旧的系统上,部署了nginx及php,今天启用新的ssl证书,在nginx上做了设置,执行nginx -t语法检查没有问题。但重载nginx以后,浏览器访问站点失败,提示证书问题,查看证书,确是同一个nginx下另外一个站点的证书。

再查那个站点的配置,也启用的自己的ssl证书,但这个证书早过期了。于是咨询其它人,问能不能临时把这个ssl配置给取消掉,反正也是过期的证书,也没啥用。再保证不影响其它业务的前提下,我把配置文件(nginx主配置文件以include形式包含单独的文件,不是那种include *.conf,我最反对这样写)做好备份,接着把监听443端口的配置稀里哗啦全部干掉。重载nginx,再访问站点,还是不行,但证书变了,变成另一个站点的证书。

在看主配置文件nginx.conf的include 行的顺序,发现该站点是继承第一个站点的证书(按include 的顺序),那好,我把这个不能访问的站点的配置,写到第一行。
技术分享图片

重载nginx,果然变成自己的证书了,访问也正常。

由此可以初步判断,可能是nginx支持多站点证书的问题,拿nginx多站点证书做关键词搜索,果然如我所猜测。需要nginx支持SSL SNI,默认的版本没有显示的支持,需要重新编译nginx,由于目前不能停止业务,先算一卦,看哪天是黄道吉日,然后再夜间做计划性维护。

以上是关于python3下检查ssl证书过期时间(续)的主要内容,如果未能解决你的问题,请参考以下文章

服务器如何更新ssl证书

GoDaddy SSL证书延期续费

如何检查网站SSL证书有没有到期?

SSL数字证书到期之后该怎么做?

如何检查SSL证书安装正确

SSL 证书在连接时过期