Python脚本批量检查SSL证书过期时间-01网址

cesc
                           

背景

01网址-云平台https的域名服务器如果超过上百条,如果都分布在不同的服务器或者负载均衡上,如果即将过期,做完替换SSL证书动作后,如何批量检查域名的SSL证书是否替换网站,可通过如下脚本实现。

11194-gax5oeafaev.png

Python脚本

保存domain-ssl-check.py文件内容如下:

#!/usr/bin/env python3  
  
import ssl, socket  
import requests  
from dateutil import parser  
import pytz  
  
requests.packages.urllib3.disable_warnings()  
  
try:  
    _create_unverified_https_context = ssl._create_unverified_context  
except AttributeError:  
    # Legacy Python that doesn't verify HTTPS certificates by default  
    pass  
else:  
    # Handle target environment that doesn't support HTTPS verification  
    ssl._create_default_https_context = _create_unverified_https_context  
  
  
def get_domain_content(domain):  
    requests.packages.urllib3.disable_warnings()  
    url = 'https://' + domain  
    response = requests.get(url, verify=False).headers  
    print(response)  
  
  
def get_my_domain(mydomain):  
    try:  
        socket.setdefaulttimeout(5)  
        my_addr = socket.getaddrinfo(mydomain, None)  
        c = ssl.create_default_context()  
        s = c.wrap_socket(socket.socket(), server_hostname=mydomain)  
        s.connect((mydomain, 443))  
        my_cert = s.getpeercert()  
        get_my_cert_dated(mydomain, my_cert, my_addr)  
    except ssl.CertificateError and socket.gaierror as e:  
        pass  
  
  
def get_my_cert_dated(domain, certs, my_addr):  
    cert_beginning_time = parser.parse(certs['notBefore']).astimezone(pytz.utc)  
    cert_end_time = parser.parse(certs['notAfter']).astimezone(pytz.utc)  
  
    print('域名:(%s)  证书失效时间: %s' % (domain,  cert_end_time))  
  
  
def read_domain_files():  
    with open('./domain.txt', 'r',  
              encoding="utf-8") as file:  
        for domain in file:  
            try:  
                get_my_domain(domain.strip())  
            except Exception as e:  
                print('域名: (%s)-%s' %(domain.strip(), e))  
  
  
if __name__ == "__main__":  
    read_domain_files()  

使用方法

准备domain.txt一个域名一行,可从DNS导出记录

cat > domain.txt << EOF  
linuxeye.com  
www.linuxeye.com  
oneinstack.com  
www.linuxeye.com  
EOF  

执行

python3 domain-ssl-check.py  
本文《Python脚本批量检查SSL证书过期时间-01网址》由错误博客(cuowu.com)整理或原创,感谢您的阅读。

随机文章

大理网(优信终于走出了低谷)
第1星座(互联网巨头打响适老化战役)
股成网(华为从活下来到有质量地活下来)
小小课堂:邯郸SEO:优化网站Tags标签
HTML无序列表
一、Word文档的编辑
082 好心人-阎川魔鬼游戏
DOTA2更新-移除泉水Artifact宣传内容

百度搜索“错误博客”即可找到本站,微信搜索“cuowucom”关注错误博客公众号。错误博客( cuowu.com )欢迎用户投稿,发布者:用户投稿,文章版权归作者所有,投稿文章不代表错误博客立场,中二少年发布为错误博客原创文章,转载请注明出处:https://cuowu.com/93516.html