Come funziona
Un certificato X.509 è un documento firmato che associa una chiave pubblica a un nome: un dominio, una persona o un'organizzazione. Tra server e file viaggia la sua forma binaria (DER), mentre ciò che si copia e incolla è la stessa struttura in Base64 tra le righe BEGIN CERTIFICATE ed END CERTIFICATE, cioè il formato PEM. Al suo interno ci sono un soggetto, un emittente, un periodo di validità, la chiave pubblica ed estensioni che indicano a cosa serve e dove verificare se è stato revocato.
Lo strumento riconosce certificati, richieste di firma PKCS#10 (CSR), chiavi private PKCS#8, PKCS#1 e SEC1, chiavi pubbliche, pacchetti PKCS#7 (.p7b) e file PKCS#12 (.pfx, .p12). Se incolli più blocchi insieme, ordina la catena dal certificato finale alla radice, verifica ogni firma con la chiave dell'emittente e confronta la chiave privata con ogni certificato e ogni CSR per dirti quale corrisponde a quale.
Converte inoltre tra formati, crea a partire da certificato e chiave il .pfx richiesto da IIS e Azure, e genera una nuova CSR con la relativa chiave privata o un certificato autofirmato per i test. Tutto avviene con l'API crittografica del tuo browser: né i certificati né le chiavi vengono inviati a un server.
Esempi
ISRG Root X1 · SHA-25696:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6L'impronta SHA-256 della radice di Let's Encrypt. È quella pubblicata dall'autorità e dagli archivi di certificati attendibili: se quella del tuo file coincide, si tratta esattamente di quel certificato.ISRG Root X1 · pin SPKIC5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=Lo SHA-256 della chiave pubblica in Base64. È il valore da inserire nel pin-sha256 della configurazione di sicurezza di rete di Android o nel certificate pinning di un'app, e non cambia al rinnovo del certificato se la chiave viene riutilizzata.root.crt + intermediate.crt + server.crtserver.crt + intermediate.crt + root.crtnginx e HAProxy considerano il primo certificato del file come quello del server. Se la catena è al contrario, nginx fallisce con key values mismatch perché confronta la chiave privata con il certificato radice.openssl pkcs12 -in viejo.pfx -legacy -nodes | openssl pkcs12 -export -out nuevo.pfxPBES2 · AES-256-CBC · MAC SHA-256I .pfx esportati da versioni datate di Windows o da OpenSSL 1.x sono cifrati con RC2 e 3DES, che i browser non implementano. Questo comando li cifra di nuovo con AES, il formato predefinito di OpenSSL 3.Casi d'uso
- Verificare, prima di installarlo, che il certificato inviato dall'autorità copra tutti i domini (SAN) e che la data di scadenza sia quella prevista.
- Scoprire quale delle chiavi private rimaste sul server corrisponde a ciascun certificato, senza dover confrontare moduli con OpenSSL.
- Capire perché un client non si fida del tuo sito: un intermedio mancante, una catena disordinata o un certificato firmato con SHA-1.
- Generare la CSR per acquistare o rinnovare un certificato, con la chiave creata sul tuo computer e il comando OpenSSL equivalente se preferisci farlo sul server.
- Convertire un .crt e il relativo .key in un .pfx per IIS, Azure App Service o un keystore Java, oppure estrarre certificato e chiave da un .pfx per nginx.
- Ottenere l'impronta o il pin SPKI di un certificato per configurare il certificate pinning in un'app mobile o convalidare un certificato client.
Domande frequenti
È sicuro incollare qui la mia chiave privata?
La chiave viene elaborata con l'API Web Crypto all'interno del tuo browser e non viene inviata a nessun server; puoi verificarlo nella scheda Rete degli strumenti per sviluppatori. In ogni caso, la buona pratica è trattare qualsiasi chiave di produzione come un segreto: incollala solo in strumenti di cui ti fidi e chiudi la scheda quando hai finito.
Che differenza c'è tra PEM, DER, CRT, CER, P7B e PFX?
DER è il certificato in binario e PEM è lo stesso binario in Base64 tra le righe BEGIN ed END. Le estensioni .crt e .cer non indicano il formato: possono contenere l'uno o l'altro. Un .p7b è un pacchetto PKCS#7 con più certificati e nessuna chiave. Un .pfx o .p12 è un PKCS#12: contiene insieme il certificato, gli intermedi e la chiave privata, cifrati con una password.
Come faccio a sapere se al mio server manca l'intermedio?
Incolla ciò che hai configurato sul server. Se la catena termina con un certificato che non è autofirmato, manca un anello: la sua estensione Authority Information Access di solito riporta in CA Issuers l'indirizzo da cui scaricare l'emittente. I browser desktop a volte lo cercano da soli, ma Android, curl e la maggior parte delle librerie no, quindi l'errore compare solo in alcuni client.
Quanto può durare un certificato TLS pubblico?
Da settembre 2020 i browser rifiutano i certificati con una durata superiore a 398 giorni. Nel 2025 il CA/Browser Forum ha approvato una riduzione graduale del massimo: 200 giorni per quelli emessi dal 15 marzo 2026, 100 giorni da marzo 2027 e 47 giorni da marzo 2029. Per questo conviene automatizzare il rinnovo con ACME. Le CA interne di un'azienda non hanno questo limite.
RSA o ECDSA per la CSR?
ECDSA P-256 offre una sicurezza paragonabile a RSA a 3072 bit con chiavi e firme molto più piccole, e il server completa l'handshake più velocemente. Tutti i browser e i sistemi attuali lo supportano. RSA 2048 resta la scelta sicura se hai client molto vecchi, dispositivi embedded o un sistema che accetta solo RSA.
Basta inserire il dominio nel nome comune (CN)?
No. Da Chrome 58, nel 2017, i browser considerano solo i nomi alternativi (SAN) e il CN viene ignorato. Ogni dominio che userà il certificato, compreso quello del CN, deve comparire nell'elenco dei SAN. Un carattere jolly come *.example.com copre un solo livello: vale per www.example.com ma non per example.com né per a.b.example.com.