python之域名证书检测

互联网安全越来越受到企业重视,https证书也成为各个公司必备,但是域名过多、系统复杂、证书不一致、过期给证书安装、替换增加了很大的困难,基于此,本文编写了证书检测程序,进行常态化监控证书情况

操作环境:python2.7

依赖包:ssl, socket

这里是关于证书的一个最新消息:

从2020年9月1日起,苹果系统、谷歌和火狐浏览器计划调整受信SSL证书的有效期策略,上述系统或浏览器中受信SSL证书的最长有效期将从825天缩短至398天。对此,各CA厂商也将缩短SSL证书的最长有效期。

脚本分为两个文件,一个域名配置文件、一个检测程序,

配置文件domain.txt,域名写入该配置文件,每行一个域名

www.xxx.com
123.xxx.com
1231.xxx.com
123.xxx.com

代码

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import ssl, socket
import json
import time
import datetime

socket.setdefaulttimeout(5)
def check_ssl(domain):
    try:
        hostname = domain
        c = ssl.create_default_context()
        s = c.wrap_socket(socket.socket(), server_hostname=hostname)
        s.connect((hostname, 443))
        cert = s.getpeercert()
        now_time = (datetime.datetime.now()+datetime.timedelta(days=3)).strftime("%b %d %H:%M:%S %Y GMT")
        now_times = time.mktime(time.strptime(now_time, "%b %d %H:%M:%S %Y GMT"))
        real_time=time.mktime(time.strptime(cert['notAfter'], "%b %d %H:%M:%S %Y GMT"))
        #比较证书是否过期
        if now_times < real_time:
            print "证书未过期"
        else:
            print "证书已过期,过期时间:"+cert['notAfter']
        #比较证书时间
        print cert['notAfter']+"--->"+hostname
        #假设Jul 01 12:00:00 2020 GMT到期
        if "Jul 01 12:00:00 2020 GMT" != cert['notAfter']:
            print "证书与预估时间不一致--->" + hostname +"<------"+ cert['notAfter']
    except Exception,err:
        print "Exception-->\n"+hostname+str(err)
if __name__ == '__main__':
    with open("/home/domain.txt", "r") as f:
        for line in f.readlines():
            line = line.strip('\n')
            check_ssl(line)

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海盗巨人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值