Un certificato x509 lega una chiave pubblica a un'identità. È il mattone su cui poggia TLS/HTTPS: quando il browser apre https://, il server presenta un certificato che dichiara "questa chiave pubblica appartiene a questo dominio", firmato da una Certificate Authority di cui il browser si fida. Il formato e le regole di validazione per la PKI di internet sono definiti nella RFC 5280. Un certificato contiene versione, numero seriale, algoritmo di firma, il Distinguished Name dell'emittente, la finestra di validità (Not Before / Not After), il Distinguished Name del soggetto, la chiave pubblica e una serie di estensioni (SAN, Key Usage, Basic Constraints e altre).
La catena di fiducia. Nessun browser si fida direttamente del certificato del tuo sito. Si fida di poche centinaia di root CA preinstallate nel proprio trust store. Il tuo certificato (il leaf, o end-entity) è firmato da una CA intermedia, che a sua volta è firmata dalla root. La validazione consiste nel costruire un percorso dal leaf fino a una root fidata: ogni anello deve essere firmato dal successivo. Se manca un intermedio (errore di deploy frequente) la catena si spezza e il browser rifiuta la connessione anche se il certificato del sito è perfetto. Per questo il tool permette di incollare l'intera catena e mostrare, cert per cert, chi firma chi.
Il SAN batte il Common Name. Storicamente il nome host stava nel campo Common Name (CN) del Subject. Dal 2017 i browser basati su Chromium, e a seguire tutti gli altri, ignorano completamente il CN per il matching del dominio: contano solo i Subject Alternative Names. Un certificato con CN=esempio.it ma senza esempio.it nei SAN dà ERR_CERT_COMMON_NAME_INVALID. Il CN oggi è cosmetico e spesso ripete il primo SAN. Quando decodifichi un certificato per capire perché un dominio non è coperto, guarda i SAN, non il CN.
Scadenza e rinnovo. La durata massima dei certificati TLS pubblici è scesa negli anni: dai vecchi 3 anni agli 825 giorni, fino ai 398 giorni imposti dai browser dal 2020. Il CA/Browser Forum ha inoltre approvato una riduzione progressiva fino a circa 47 giorni entro il 2029. La conseguenza pratica è che il rinnovo manuale non è più sostenibile: ci si affida ad ACME e a certificati a vita breve (Let's Encrypt emette a 90 giorni, rinnovati in automatico). Decodificare il certificato prima di un deploy, o durante un incidente, resta il modo più rapido per leggere la data esatta di Not After e sapere quanti giorni mancano.
PEM, DER e fingerprint. Un certificato è in sostanza una struttura ASN.1 codificata in DER (binario). Il PEM è quel binario in base64, avvolto fra i delimitatori BEGIN/END: testo ASCII copiabile ovunque. Estensioni come .crt e .cer possono contenere l'uno o l'altro. Il fingerprint non è un campo del certificato: è l'hash (SHA-256, o SHA-1 per compatibilità) calcolato sui byte DER dell'intero certificato, e serve a identificarlo in modo univoco, per esempio nel certificate pinning o per confrontare due copie.
Decodificare non è validare. Questo strumento legge e mostra ciò che il certificato dichiara; non verifica la firma della CA, non controlla la revoca (OCSP/CRL) e non conferma che la catena arrivi a una root fidata. Un certificato può decodificarsi senza errori ed essere comunque rifiutato dal browser perché scaduto, con hostname fuori dai SAN, self-signed o con un intermedio mancante. La decodifica ti dà i fatti; la fiducia è una valutazione separata che dipende dal trust store e dal contesto.
Privacy by design. Nessun upload, nessun fetch remoto. Il PEM viene convertito in DER, parsato e sottoposto a hashing interamente nel tuo browser via WebCrypto. Il dominio a cui il certificato appartiene non viene mai contattato dal nostro server. È lo strumento giusto per ispezionare certificati di sistemi interni, ambienti di staging non raggiungibili dall'esterno, dispositivi in intranet o certificati esportati da un HSM che non vuoi far uscire dalla tua rete.