zoukankan      html  css  js  c++  java
  • 检测HTTPS证书到期时间

    #!/usr/bin/env python-devops
    # -*- coding: utf-8 -*-
    # @Time    : 2019-05-31 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()
    
    
  • 相关阅读:
    Python 2.7 中使用 Print 方法
    python
    Python 中 global、nonlocal的使用
    PYTHON中 赋值运算的若干问题总结
    Python List 中 Append 和 Extent 方法不返回值。
    由Python的一个小例子想到的
    PHP环境安全加固
    Tomcat服务安全加固
    网站被植入Webshell的解决方案
    Apache服务安全加固
  • 原文地址:https://www.cnblogs.com/ipyanthony/p/12925140.html
Copyright © 2011-2022 走看看