大数据语言教你检测https证书有效期

查看简书证书到期时间

证书有效期.png

准备python脚本,脚本内容如下:

#!/usr/bin/env python-devops
# -*- coding: utf-8 -*-
# @Time    : 2020-06-08 16:00
# @Author  : Anthony.long
# @Site    :
# @File    : check_https_dated.py
# @Software: PyCharm


import ssl, socket
import requests
from dateutil import parser
import pytz


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:
        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       证书失效时间: %s      IP地址: %s ' % (
        domain, cert_beginning_time, cert_end_time, my_addr[0][4][0]))


def read_domain_files():
    with open('/xxxxxxxxx/domain.txt', 'r',
              encoding="utf-8") as file:
        for domain in file:
            get_my_domain(domain.strip())


if __name__ == "__main__":
    read_domain_files()

检测结果如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。