CertH certH
In questa pagina

TLS 1.3: cosa cambia e come verificarlo

Aggiornato il 2026-11-03 · 6 min di lettura

TLS 1.3 è la prima revisione del protocollo in un decennio che toglie funzionalità invece di aggiungerne. È questo che lo rende più veloce e più difficile da configurare male, ed è per questo che un server che parla solo TLS 1.2 non può raggiungere il voto massimo.

Cosa è cambiato rispetto a TLS 1.2

TLS 1.3 riduce l’handshake da due andata e ritorno a uno, e a zero in ripresa. Rimuove lo scambio di chiavi RSA e Diffie-Hellman statico, rendendo la forward secrecy obbligatoria invece che opzionale. Elimina del tutto le suite in modalità CBC, RC4, SHA-1 e la compressione, e cifra più parti dell’handshake — incluso il certificato — così gli intermediari imparano meno.

La conseguenza pratica è che quasi tutte le debolezze storiche che richiedevano configurazione attenta ora sono impossibili. Non puoi negoziare per errore una suite debole su TLS 1.3, perché il protocollo definisce solo suite AEAD con hash moderni.

Perché conta per il voto

CertH richiede TLS 1.3 per un A+, indipendentemente da tutto il resto. Un sito con certificato perfetto, cifrature forti e HSTS resta a 95 e a una A senza di esso. Questa singola riga è il motivo più frequente per cui un sito ben gestito si ferma ad A.

L’altra ragione è l’handshake stesso. Su una connessione mobile ad alta latenza, un andata e ritorno risparmiato sono decine o centinaia di millisecondi su ogni nuova connessione: un effetto diretto e misurabile sulla velocità percepita.

Attivarlo

Su nginx il supporto a TLS 1.3 dipende dalla versione di OpenSSL con cui è stato compilato il binario. Serve OpenSSL 1.1.1 o superiore; controlla con nginx -V la stringa built with OpenSSL prima di toccare qualsiasi cosa.

Su Apache SSLProtocol basta se httpd è collegato a un OpenSSL moderno. Su Cloudflare TLS 1.3 è un interruttore a livello di zona in SSL/TLS → Edge Certificates ed è attivo per impostazione predefinita sulla maggior parte delle zone dal 2021.

# nginx: does this binary even support TLS 1.3?
nginx -V 2>&1 | tr ' ' '\n' | grep -i openssl

# negotiate TLS 1.3 explicitly and print the protocol
openssl s_client -connect example.com:443 -tls1_3 -servername example.com </dev/null 2>/dev/null | grep -E "Protocol|Cipher"

I dettagli di cui nessuno parla

La ripresa 0-RTT è veloce ma riproducibile: un attaccante che cattura il primo volo può reinviarlo. Non consentire mai 0-RTT su endpoint che cambiano stato alla prima richiesta, come qualunque cosa che scriva.

Alcuni middlebox aziendali si rompono ancora con TLS 1.3. Mantenere TLS 1.2 attivo accanto è il compromesso standard: conservi la compatibilità e soddisfi comunque il requisito A+, perché il valutatore cerca TLS 1.3 offerto, non TLS 1.2 disattivato.

Infine, un CDN o un bilanciatore che termina il TLS nasconde completamente l’origine. Cambiare l’origine senza cambiare l’edge non cambia nulla di ciò che uno scanner esterno può vedere.

FAQ

Devo disattivare TLS 1.2 quando TLS 1.3 è attivo?

No. Mantenere TLS 1.2 preserva la compatibilità con client vecchi e middlebox e non costa punti. Disattivarlo rimuove solo opzioni di fallback.

TLS 1.3 cambia i requisiti del mio certificato?

Rende inutilizzabili alcuni algoritmi storici. I certificati con chiave RSA vanno ancora bene, ma la catena deve usare algoritmi di firma consentiti dal protocollo: le firme SHA-1, per esempio, non sono utilizzabili in TLS 1.3.

Leggi dopo