1 Star 0 Fork 2

root / SSL_check

forked from 李俊鹏 / SSL_check 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
SSL_check.py 1.98 KB
一键复制 编辑 原始数据 按行查看 历史
lijunpeng 提交于 2021-02-16 17:51 . init
#!/usr/bin/env python
from urllib3.contrib import pyopenssl
from datetime import datetime
from sys import argv
import idna
from socket import socket
import re
class SSL_Check:
def __init__(self, url):
self.url = url
@property
def get_cert(self):
sock = socket()
sock.setblocking(True)
sock.connect((self.url, 443),)
ctx = pyopenssl.OpenSSL.SSL.Context(pyopenssl.OpenSSL.SSL.TLSv1_METHOD)
ctx.check_hostname = False
ctx.verify_mode = pyopenssl.OpenSSL.SSL.VERIFY_NONE
sock_ssl = pyopenssl.OpenSSL.SSL.Connection(ctx, sock)
sock_ssl.set_tlsext_host_name(idna.encode(self.url))
sock_ssl.set_connect_state()
sock_ssl.do_handshake()
cert = sock_ssl.get_peer_certificate()
sock_ssl.close()
sock.close()
return cert
@property
def get_str_time(self):
cert = self.get_cert
return cert.get_notAfter().decode()[0:-1]
@property
def get_ssl_time(self):
ssl_time = datetime.strptime(self.get_str_time, '%Y%m%d%H%M%S')
return (ssl_time-datetime.now()).days
def get_servername():
regEx = re.compile((r'.*(<VirtualHost \*:443>([\s\S]*?)</VirtualHost>).*'))
regName = re.compile(r'ServerName.*')
with open('vhost.conf', 'r') as f:
conf_list = f.readlines()
conf_s = "".join(conf_list)
result = regEx.findall(conf_s)
ServerNames = []
for i in range(len(result)):
vhost = result[i]
vhost = ''.join(vhost)
if regName.search(vhost).group():
ServerName = regName.search(vhost).group()
ServerName = ServerName[10:].strip()
ServerNames.append(ServerName)
return ServerNames
if __name__ == '__main__':
try:
#url = argv[1]
print(get_servername())
ssl_check=SSL_Check(get_servername())
print(ssl_check.get_ssl_time)
except Exception as e:
print(e)
Python
1
https://gitee.com/wjbjwang/ssl_check.git
git@gitee.com:wjbjwang/ssl_check.git
wjbjwang
ssl_check
SSL_check
master

搜索帮助