diff --git a/backend/sslh.py b/backend/sslh.py new file mode 100644 index 0000000000000000000000000000000000000000..7aea60018b38fb39eacf016994a2860d9bf03ed3 --- /dev/null +++ b/backend/sslh.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 +import ssl +from cryptography import x509 +import socket + +import tls_utils +from generic_handler import GenericHandler + +class SSLHandler(GenericHandler): + def connect(self, verification: bool) -> int: + if verification: + with self.context.wrap_socket(socket.socket(), server_hostname=self.host) as s: + s.connect((self.host, self.port)) + cert = s.getpeercert() + return tls_utils.get_cert_expiry_timestamp(cert) + else: + pem_cert = ssl.get_server_certificate((self.host, self.port), timeout=5) + cert = x509.load_pem_x509_certificate(pem_cert.encode()) + not_after = cert.not_valid_after_utc.timestamp() + return not_after \ No newline at end of file