Decoder Certificato SSL
Analizza e decodifica certificati SSL/TLS in formato PEM
Informazioni sullo strumento
Un decodificatore di certificati SSL è uno strumento essenziale per chiunque lavori con server web, sicurezza o crittografia. Ti consente di ispezionare il contenuto dei certificati SSL/TLS in formato PEM senza aver bisogno di strumenti da riga di comando o software specializzato. Caricando o incollando un certificato, puoi visualizzare istantaneamente tutte le informazioni codificate—come l'emittente, il soggetto, il periodo di validità, i dettagli della chiave pubblica e le impronte digitali—che altrimenti rimarebbero incomprensibili. Questa trasparenza è fondamentale per verificare l'autenticità del certificato, risolvere i problemi di connessione e garantire che la tua infrastruttura soddisfi i requisiti di conformità alla sicurezza.
Per utilizzare il decodificatore di certificati SSL, incolla semplicemente il tuo certificato in formato PEM (il blocco tra -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----) nel campo di input. Lo strumento analizza automaticamente il certificato e visualizza tutti i dati incorporati in un formato leggibile da esseri umani, inclusa l'organizzazione emittente, il soggetto del certificato, le date di emissione e scadenza, il numero seriale, l'algoritmo di firma e la chiave pubblica del certificato. Che tu sia un amministratore di sistema che gestisce più domini, uno sviluppatore che testa un ambiente di staging o un professionista della sicurezza che controlla l'infrastruttura, questo strumento elimina la necessità di gestire comandi OpenSSL o altre utility esterne.
Il decodificatore di certificati SSL funziona interamente nel tuo browser—nessun dato viene inviato a nessun server, quindi i tuoi certificati rimangono privati e sicuri. Questo lo rende particolarmente utile per gestire certificati sensibili in ambienti limitati. Tieni presente che lo strumento legge solo certificati in formato PEM; se hai un certificato in formato DER (binario), dovrai convertirlo in PEM per primo. Utilizzare regolarmente questo strumento come parte del tuo flusso di lavoro di gestione dei certificati ti aiuta a rilevare le date di scadenza, verificare i dettagli dell'emittente e prevenire le lacune di sicurezza prima che diventino problemi.
Domande Frequenti
Implementazione del Codice
from cryptography import x509
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
from datetime import datetime, timezone
import base64, textwrap
def decode_pem_certificate(pem: str) -> dict:
cert = x509.load_pem_x509_certificate(pem.encode(), default_backend())
now = datetime.now(timezone.utc)
# Subject / Issuer fields
def dn(name) -> dict:
return {attr.oid._name: attr.value for attr in name}
# Subject Alternative Names
try:
san_ext = cert.extensions.get_extension_for_class(x509.SubjectAlternativeName)
san = san_ext.value.get_values_for_type(x509.DNSName)
except x509.ExtensionNotFound:
san = []
# Key usage
try:
ku = cert.extensions.get_extension_for_class(x509.KeyUsage).value
key_usage = [
name for name, ok in [
("digitalSignature", ku.digital_signature),
("keyEncipherment", ku.key_encipherment),
("keyCertSign", ku.key_cert_sign),
("cRLSign", ku.crl_sign),
] if ok
]
except Exception:
key_usage = []
return {
"subject": dn(cert.subject),
"issuer": dn(cert.issuer),
"serial": hex(cert.serial_number),
"not_before": cert.not_valid_before_utc.isoformat(),
"not_after": cert.not_valid_after_utc.isoformat(),
"is_expired": cert.not_valid_after_utc < now,
"days_remaining": (cert.not_valid_after_utc - now).days,
"signature_alg": cert.signature_hash_algorithm.name,
"public_key_type": cert.public_key().__class__.__name__,
"san": san,
"key_usage": key_usage,
"is_ca": cert.extensions.get_extension_for_class(
x509.BasicConstraints
).value.ca if True else False,
}
if __name__ == "__main__":
import sys, json
pem = open(sys.argv[1]).read() if len(sys.argv) > 1 else ""
if pem:
info = decode_pem_certificate(pem)
print(json.dumps(info, indent=2))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.