MCPcopy Create free account
hub / github.com/CScorza/IntelOSINT / _scan_tls_cert

Method _scan_tls_cert

IntelOSINT.py:12442–12470  ·  view source on GitHub ↗
(self, domain)

Source from the content-addressed store, hash-verified

12440 return info
12441
12442 def _scan_tls_cert(self, domain):
12443 out = {}
12444 ctx = ssl.create_default_context()
12445 try:
12446 with socket.create_connection((domain, 443), timeout=6) as raw_sock:
12447 ssock = ctx.wrap_socket(raw_sock, server_hostname=domain)
12448 with ssock:
12449 cert = ssock.getpeercert()
12450 if not cert:
12451 out["TLS"] = "Certificato non disponibile"
12452 return out
12453 out["TLS"] = "Certificato ottenuto"
12454 out["TLS Issuer"] = ", ".join([f"{k}={v}" for k, v in cert.get("issuer", [])]) if cert.get("issuer") else "N/D"
12455 out["TLS Soggetto"] = ", ".join([f"{k}={v}" for k, v in cert.get("subject", [])]) if cert.get("subject") else "N/D"
12456 if cert.get("notBefore"):
12457 out["TLS valid from"] = str(cert.get("notBefore"))
12458 if cert.get("notAfter"):
12459 out["TLS valid to"] = str(cert.get("notAfter"))
12460 alt = cert.get("subjectAltName") or []
12461 if alt:
12462 out["TLS SAN"] = ", ".join([v[1] for v in alt if len(v) > 1][:25])
12463 if cert.get("version"):
12464 out["TLS Version"] = str(cert.get("version"))
12465 if cert.get("serialNumber"):
12466 out["TLS Serial"] = str(cert.get("serialNumber"))
12467 return out
12468 except Exception as e:
12469 out["TLS"] = f"Err: {e}"
12470 return out
12471
12472
12473

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected