Un certificato SSL/TLS è un documento digitale che dimostra l'identità di un sito web e permette al tuo browser di stabilire con esso una connessione HTTPS cifrata. Collega un nome di dominio a una chiave pubblica ed è firmato da un'autorità di certificazione (CA) di cui i browser si fidano già.
Ogni volta che vedi https:// e un lucchetto o un indicatore simile nella barra degli indirizzi, un istante prima è stato controllato un certificato. I certificati svolgono due compiti insieme: autenticano il server, così sai di parlare con il vero example.com e non con un impostore, e abilitano la cifratura, così nessuno sul percorso di rete può leggere o alterare ciò che invii.
SSL o TLS: qual è la differenza?
SSL (Secure Sockets Layer) era il protocollo originale, sviluppato da Netscape negli anni 1990. È stato sostituito da TLS (Transport Layer Security), e ogni versione di SSL è oggi considerata non sicura ed è stata ufficialmente dichiarata obsoleta. Anche TLS 1.0 e 1.1 sono stati dichiarati obsoleti, con la RFC 8996 (2021), quindi le connessioni moderne usano TLS 1.2 o TLS 1.3.
Il nome "certificato SSL" però è rimasto. Il certificato in sé non è legato a una versione del protocollo: lo stesso certificato funziona con qualsiasi versione di TLS. "Certificato SSL", "certificato TLS" e "certificato HTTPS" significano la stessa cosa.
Come funziona l'handshake TLS
Prima che venga scambiato qualsiasi dato di una pagina web, browser e server eseguono un handshake. In versione semplificata, un handshake TLS 1.3 si svolge così:
- Client hello. Il browser si connette, di solito sulla porta 443, e dichiara quali versioni di TLS e quali cipher suite supporta. Include il nome host che vuole raggiungere (tramite l'estensione Server Name Indication, così un solo indirizzo IP può ospitare molti siti) e la sua parte dello scambio di chiavi.
- Server hello. Il server sceglie i parametri, invia la propria parte di chiave e presenta il suo certificato insieme a una firma che dimostra di possedere la chiave privata corrispondente.
- Verifica. Il browser controlla che il certificato copra il nome host, sia entro le date di validità e risalga fino a una CA radice attendibile.
- Chiavi di sessione. Entrambe le parti ricavano dallo scambio di chiavi le stesse chiavi di sessione simmetriche. Tutto il traffico successivo viene cifrato con esse.
La chiave privata non lascia mai il server. La crittografia a chiave pubblica serve solo per autenticare e accordarsi sulle chiavi; la maggior parte dei dati viene cifrata con veloci cifrari simmetrici come AES-GCM o ChaCha20-Poly1305. TLS 1.3 completa il tutto in un solo round trip, contro i due di TLS 1.2.
Cosa contiene un certificato
Un certificato segue lo standard X.509 e contiene, tra gli altri, questi campi:
- Subject Alternative Names (SAN): i nomi host per cui il certificato è valido. I browser controllano questo elenco, non il vecchio campo Common Name.
- Chiave pubblica: la chiave pubblica RSA o ECDSA del server.
- Emittente: la CA che ha firmato il certificato.
- Periodo di validità: le date "Not Before" e "Not After".
- Numero di serie e firma: un identificativo univoco e la firma dell'emittente su tutto quanto sopra.
Certificati SAN e wildcard
Un singolo certificato può coprire molti nomi elencandoli come SAN, per esempio example.com, www.example.com e shop.example.com. Un wildcard come *.example.com copre qualsiasi singola etichetta a quel livello, quindi corrisponde a www.example.com e api.example.com, ma non a example.com stesso né a nomi più profondi come a.b.example.com. Per questo i certificati wildcard di solito elencano il dominio senza prefisso come SAN aggiuntivo.
Certificati DV, OV ed EV
I certificati differiscono per l'accuratezza con cui la CA ha verificato il richiedente prima di emetterli:
| Tipo | Cosa viene verificato | Uso tipico |
|---|---|---|
| Domain Validated (DV) | Solo che il richiedente controlla il dominio, tramite un record DNS, un file sul sito web o un'email | La maggior parte dei siti; emesso automaticamente in pochi secondi |
| Organization Validated (OV) | Controllo del dominio più l'esistenza legale dell'organizzazione | Aziende che vogliono il nome della società nei dettagli del certificato |
| Extended Validation (EV) | Una verifica più rigorosa e standardizzata dell'entità giuridica | Alcune banche e grandi aziende |
Tutti e tre offrono esattamente la stessa robustezza di cifratura. La differenza riguarda solo le informazioni sull'identità. I principali browser hanno smesso intorno al 2019 di mostrare per i certificati EV la speciale indicazione verde con il nome dell'azienda, quindi per la maggior parte dei siti un certificato DV è la scelta pratica.
La catena di fiducia
Il tuo sistema operativo e il tuo browser includono un root store: un elenco di certificati di CA radice di cui si fidano. Le CA radice raramente firmano direttamente i certificati dei siti web. Firmano invece certificati intermedi, che a loro volta firmano il certificato foglia (del server):
CA radice (nel trust store del browser)
└── CA intermedia (inviata dal server)
└── www.example.com (certificato foglia, inviato dal server)
Il server deve inviare il proprio certificato foglia e quelli intermedi. Il browser verifica quindi ogni firma fino a una radice di cui si fida già. Questa struttura permette di tenere le chiavi radice offline e ben protette. Per proteggersi da emissioni errate, i certificati attendibili pubblicamente vengono inoltre registrati in log pubblici di Certificate Transparency, e i proprietari dei domini possono limitare quali CA possono emettere certificati per loro con un record DNS CAA, descritto nella nostra guida ai tipi di record DNS.
Let's Encrypt e la durata dei certificati
Let's Encrypt, una CA senza scopo di lucro, ha reso diffusi i certificati DV gratuiti. I suoi certificati sono validi 90 giorni e sono pensati per essere rinnovati automaticamente con il protocollo ACME, usando client come Certbot o funzioni integrate in molti web server e pannelli di hosting. La maggior parte dei provider di hosting e delle CDN oggi emette e rinnova i certificati senza alcun intervento manuale.
In tutto il settore le durate si stanno accorciando. In base alla votazione SC-081 del CA/Browser Forum, la validità massima dei certificati TLS attendibili pubblicamente viene ridotta per gradi, a partire da 200 giorni da marzo 2026 per poi scendere ancora negli anni successivi. Il calendario esatto potrebbe ancora cambiare, ma la direzione è chiara: automatizza il rinnovo, perché rinnovare i certificati a mano diventerà sempre meno praticabile.
Errori comuni dei certificati e come risolverli
Certificato scaduto
I browser mostrano errori come NET::ERR_CERT_DATE_INVALID. Rinnova il certificato e ricarica il web server. Poi scopri perché il rinnovo automatico non ha funzionato: spesso è un firewall che blocca la convalida, una modifica al DNS o un cron job non funzionante. Un orologio sbagliato sul dispositivo del visitatore può causare lo stesso errore, quindi controlla la data se si lamenta un solo dispositivo.
Nome non corrispondente
Errori come ERR_CERT_COMMON_NAME_INVALID indicano che il nome host nella barra degli indirizzi non è nell'elenco SAN del certificato, per esempio un certificato per www.example.com usato per servire example.com. Riemetti il certificato includendo ogni nome host che servi, oppure reindirizza i visitatori verso un nome coperto.
Catena incompleta
Se il server invia solo il certificato foglia senza gli intermedi, alcuni browser se la cavano recuperando o mettendo in cache il pezzo mancante, mentre altri, insieme a molti strumenti da riga di comando e app, falliscono. Configura il server con il file della catena completa (spesso chiamato fullchain.pem).
Autofirmato o emittente non attendibile
NET::ERR_CERT_AUTHORITY_INVALID significa che la catena non porta a una radice attendibile, di solito perché il certificato è autofirmato o proviene da una CA privata. Va bene per i test interni ma non per un sito pubblico; sostituiscilo con un certificato di una CA pubblica. Lo stesso errore può comparire quando un antivirus o un proxy aziendale intercetta l'HTTPS.
Contenuto misto
Il certificato è valido, ma la pagina carica script o immagini tramite http:// semplice. Aggiorna quegli URL a HTTPS e valuta un header HSTS, così i browser usano sempre HTTPS.
openssl s_client -connect example.com:443 -servername example.com stampa l'intera catena inviata dal server.Domande frequenti
HTTPS significa che un sito è sicuro?
No. HTTPS significa che la tua connessione al sito è cifrata e che il sito controlla il dominio mostrato. I siti di phishing possono avere, e hanno, certificati DV validi. Controlla sempre il nome del dominio stesso.
I certificati gratuiti sono meno sicuri di quelli a pagamento?
No. Un certificato DV gratuito di Let's Encrypt offre la stessa cifratura di uno a pagamento. I certificati a pagamento possono aggiungere la convalida dell'identità (OV/EV), garanzie o assistenza, ma non una cifratura più forte.
Quanto dura un certificato SSL?
I certificati Let's Encrypt durano 90 giorni. Le altre CA pubbliche sono vincolate al massimo stabilito dal CA/Browser Forum, che viene ridotto per gradi a partire da 200 giorni nel 2026. Il rinnovo automatico è l'approccio più sicuro.
Quale porta usa HTTPS?
HTTPS usa per impostazione predefinita la porta TCP 443, mentre l'HTTP semplice usa la porta 80. Per saperne di più consulta la nostra guida alle porte di rete più comuni.