ssl_expire.py
import socket
import ssl
import OpenSSL
def get_server_certificate(hostname):
context = ssl.create_default_context()
with socket.create_connection((hostname, 443)) as sock:
with context.wrap_socket(sock, server_hostname=hostname) as sslsock:
der_cert = sslsock.getpeercert(True)
return ssl.DER_cert_to_PEM_cert(der_cert)
cert = get_server_certificate('qiita.com')
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert.encode('utf-8'))
import datetime
from datetime import datetime as dt
not_before = dt.strptime(str(x509.get_notBefore())[2:16],'%Y%m%d%H%M%S') + datetime.timedelta(hours=9)
not_after = dt.strptime(str(x509.get_notAfter())[2:16],'%Y%m%d%H%M%S') + datetime.timedelta(hours=9)
print(not_after)
aaa = not_after - dt.now()
print(aaa)
$ python3 ssl_expire.py
2020-04-30 21:00:00
106 days, 19:33:22.726942
Le certificat qiita.com expire dans 106 jours
Que faire si vous ne parvenez pas à obtenir un certificat avec ssl \ .get \ _server \ _certificate \ -Qiita
ssl \ - \ - \ - wrapper TLS / SSL pour les objets socket - documentation Python 3 \ .8 \ .1
Obtention de la date d'expiration du certificat SSL du site Python \ -Symfoware
Obtention de la date d'expiration du certificat SSL \ -Qiita
certificat x509 \ - stockage de mémos divers
Mémorandum sans titre: Comment trouver X jours avant / X jours après avec Python