La catena di fiducia: dal leaf alla root
La sicurezza dei certificati SSL si basa su una catena di fiducia gerarchica. Il tuo certificato (leaf certificate) non è fidato direttamente dal browser: è firmato da una CA intermedia, che a sua volta è firmata da una root CA. Il browser ha un trust store con le root CA fidate (circa 150 root CA nei browser moderni). Per fidarsi del tuo certificato, il browser deve poter costruire la catena completa dal leaf fino a una root CA nel suo trust store. Se manca un anello, la catena si spezza e il browser mostra un errore.
Il Certificate Chain tool visualizza l'intera catena restituita dal server, verificando la firma di ogni certificato, le date di validità di ciascuno, e la completezza della catena. È più dettagliato dell'SSL Check: mentre quello fornisce un grade complessivo, il Certificate Chain si concentra specificamente sulla struttura della catena, identificando certificati mancanti, certificati nell'ordine sbagliato, e certificati scaduti nella catena.
Problemi comuni nella catena
Il problema più frequente è il certificato intermedio mancante. Il server deve inviare il leaf e tutti gli intermedi (ma non la root). Se manca un intermedio, alcuni browser e client (specialmente quelli mobili, cURL, applicazioni Java) non riescono a validare la catena e mostrano un errore. Chrome su desktop spesso funziona comunque perché scarica automaticamente gli intermedi mancanti (AIA fetching), mascherando il problema. Per questo è fondamentale testare con uno strumento dedicato come il nostro Certificate Chain.
Configurare correttamente la catena
Per configurare correttamente la catena, concatena il certificato del server con i certificati intermedi in un unico file (bundle o fullchain). L'ordine è: leaf per primo, poi gli intermedi dal più vicino al leaf al più vicino alla root. Non includere il certificato root. Su Nginx: ssl_certificate punta al fullchain. Su Apache: SSLCertificateFile per il leaf, SSLCertificateChainFile per gli intermedi. Let's Encrypt fornisce direttamente il file fullchain.pem che contiene leaf + intermedi.
Dopo la configurazione, verifica con Certificate Chain e con SSL Check per il grade. Se emetti certificati per più sottodomini, verifica la catena su ciascuno — la configurazione potrebbe essere diversa. Verifica anche che il tuo dominio abbia i record CAA Record Lookup configurati per limitare quali CA possono emettere certificati, aggiungendo un ulteriore livello di protezione alla tua PKI.
Un caso particolare è il cross-signing: Let's Encrypt ha inizialmente usato un certificato intermedio cross-signed dalla root DST Root CA X3 (più vecchia e diffusa) per garantire compatibilità con dispositivi Android pre-7.1. Con il passaggio alla propria root ISRG Root X1, alcuni dispositivi datati potrebbero avere problemi. Se il tuo pubblico include dispositivi molto vecchi, verifica la compatibilità della catena con quei client specifici.