Я пытаюсь найти рассчитать дату истечения срока действия SSL-сертификатов через библиотеку OpenSSL Python.Я новичок в использовании этой библиотеки и нижеприведенный код для расчета срока годности.Но я всегда получаю сертификаты как None.Я просто не хочу запускать этот код, а запустить его также безопасно.Может кто-нибудь взглянуть и подсказать, пропускаю ли я какой-либо шаг?Спасибо
hostname = socket.getfqdn()
port = socket.gethostname().split('.')[0]
if port == 'master':
port = 8140
else:
port = 443
context = SSL.Context(SSL.SSLv23_METHOD)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = SSL.Connection(context, sock)
ssl_sock.settimeout(10)
ssl_sock.connect((hostname, port))
ssl_sock.do_handshake()
certs = ssl_sock.get_peer_cert_chain()
if certs is not None:
for cert in certs:
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
subject = x509.get_subject()
common_name = str(subject.CN)
expire_date = x509.get_notAfter()
datetimeformat = '%Y-%m-%d %H:%M:%S'
current_date = datetime.datetime.now()
cert_status = datetime.datetime.strptime(expire_date, datetimeformat) - datetime.datetime.strptime(
current_date, datetimeformat)
cert_status = int(cert_status.days)
dispatch_value('ssl_check', common_name, cert_status, 'gauge')