Je sais comment obtenir des informations de certificat telles que la date d'expiration en utilisant pyopenssl par exemple, mais est-il possible de le faire avec un aiohttp response object?Comment vérifier la date d'expiration d'un certificat SSL avec aiohttp?
2
A
Répondre
5
Je ne pouvais pas le trouver dans la documentation de aiohttp, mais vous pouvez utiliser ssl pour obtenir le cert et OpenSSL pour obtenir ce n'est pas la date après et le comparer à votre date actuelle afin de savoir s'il a expiré ou non. Plus de détails ici How to import OpenSSL in python Et un bout de code qui fait à peu près ce que vous avez besoin ci-dessous Vous devez installer au préalable OpenSSL cependant
Pip installer pyopenssl
import OpenSSL
import ssl, socket
cert=ssl.get_server_certificate(('www.google.com', 443))
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
x509.get_notAfter()
1
Cocher cette prise en pension appelée check-tls-certs. Ce n'est pas vraiment aiohttp, mais il est basé sur asyncio et fonctionne donc de manière asynchrone.
Vous n'avez pas vraiment besoin d'OpenSSL. [serverlescode] (https://serverlesscode.com/post/ssl-expiration-alerts-with-lambda/) a un exemple qui ne l'exige pas (trop long à poster comme commentaire ...) –