Immagina di prenotare un tavolo sul sito di un ristorante ipotetico. Apri la pagina, scegli l’orario, accedi al tuo account e confermi con un servizio di pagamento incorporato. Dietro questa visita lavorano più sistemi collegati, ma per te resta un’unica esperienza semplice.
TLS e header di sicurezza aiutano quei sistemi a collaborare. TLS stabilisce la connessione cifrata e permette al browser di verificare l’identità del server; gli header della risposta, cioè le intestazioni HTTP, danno al browser istruzioni su contenuti, cookie e visite successive.
Ambito di questa guida
Lo snapshot gratuito di Sitelemetry non è un penetration test. Da un solo handshake TLS ricava il protocollo negoziato, non le versioni e le suite supportate; degli header verifica soprattutto la presenza, nei cookie ignora SameSite e prova il redirect da HTTP a HTTPS solo se inserisci http://.
1. Che cosa fa il certificato durante una visita
Quando il browser si collega in HTTPS, TLS stabilisce un canale cifrato e il server presenta il proprio certificato. Il browser controlla che copra il nome richiesto, che sia nel periodo di validità e che risalga, attraverso la catena, a una CA (un’autorità che emette certificati) di cui si fida. Se uno di questi controlli fallisce, al posto della pagina compare un errore.
Fai l’elenco dei nomi pubblici: dominio principale, www e sottodomini di servizio come area clienti o assistenza. Per ognuno annota chi gestisce il certificato e come si rinnova. CDN e server di origine possono avere certificati distinti, con rinnovi separati: il visitatore vede quello della CDN, ma se la CDN si collega all’origine in HTTPS anche quel tratto usa un certificato che può scadere.
I rinnovi stanno diventando più frequenti. Secondo il calendario approvato dal CA/Browser Forum, i certificati pubblici emessi dal 15 marzo 2026 durano al massimo 200 giorni; il limite scende a 100 giorni dal 15 marzo 2027 e a 47 dal 15 marzo 2029. Let’s Encrypt, inoltre, ha smesso di inviare le email di avviso di scadenza nel giugno 2025. Conviene quindi affidarsi al rinnovo automatico e affiancargli un controllo indipendente della scadenza, che avvisi se il rinnovo non è avvenuto.
Sul protocollo, le linee guida dell’ACN su TLS (versione 2.0, maggio 2026) considerano obsolete tutte le versioni di SSL e TLS 1.0 e 1.1 e raccomandano TLS 1.3 e TLS 1.2, con preferenza per la prima; per TLS 1.2 ammettono solo un elenco ristretto di suite crittografiche, perché molte di quelle previste dal protocollo sono oggi considerate insicure. La guida TLS di OWASP aiuta a tradurre queste scelte nella configurazione del server. Annotare il protocollo negoziato in una connessione reale è un’osservazione concreta; una singola connessione, però, mostra solo la versione concordata, non tutte quelle che il server accetterebbe.
2. Che cosa aggiunge ogni livello
| Livello | Che cosa ottieni | Pratica utile |
|---|---|---|
| Certificato TLS | Una connessione cifrata con un server identificato | Tenere un registro di nomi, scadenze e responsabili dei rinnovi |
| Content Security Policy | Regole esplicite su quali risorse la pagina può caricare | Costruire la policy a partire dalle risorse realmente usate |
| HSTS | Il browser usa solo HTTPS nelle visite successive | Aumentare la durata per gradi e decidere consapevolmente sui sottodomini |
| Attributi dei cookie | Una sessione che viaggia solo dove serve e che gli script non leggono | Provare accesso, servizi incorporati e ritorni da siti esterni |
| Controllo dei frame | La scelta di chi può incorporare la pagina in altri siti | Indicare i siti autorizzati, oppure nessuno |
Considera questi controlli come istruzioni complementari. Il certificato riguarda la connessione; gli header descrivono come il browser deve trattare una risposta specifica. Pagine diverse hanno esigenze diverse: un articolo pubblico, l’area account e un widget pensato per essere incorporato altrove richiedono regole adatte al loro ruolo. Secondo OWASP, header configurati bene aiutano a prevenire problemi come cross-site scripting, clickjacking e divulgazione di informazioni; non sostituiscono però un codice scritto con attenzione.
3. Costruisci la CSP sulle risorse che usi davvero
La Content Security Policy dice al browser da quali origini la pagina può caricare script, stili, immagini, font, connessioni e frame. Il suo scopo principale è ridurre l’impatto di un cross-site scripting: se uno script estraneo finisce nella pagina, il browser si rifiuta di eseguirlo quando la policy non lo consente. Come ricorda la guida di MDN, è una difesa in profondità e non sostituisce la validazione dell’input.
Parti da un inventario di script, immagini, font, chiamate di rete e frame. Percorri tutto il flusso, non solo la home, così da includere pagamento, autenticazione e widget di assistenza che compaiono dopo un’interazione. Poi pubblica la policy proposta con l’header Content-Security-Policy-Report-Only: il browser segnala le violazioni nella console o all’endpoint configurato, senza bloccare nulla. Associa ogni segnalazione alla risorsa che la genera e decidi la regola. Quando i percorsi rappresentativi non producono più segnalazioni inattese, applica la policy con l’header Content-Security-Policy.
Alcuni dettagli che fanno risparmiare tempo:
- per gli script, MDN raccomanda una policy basata su nonce o hash, la cosiddetta strict CSP, invece di un lungo elenco di domini; con script di terze parti che ne caricano altri può essere difficile da applicare;
'unsafe-inline'annulla buona parte della protezione: evitalo dove puoi;- la modalità Report-Only e la direttiva
frame-ancestorsfunzionano solo come header HTTP, non dentro un tag<meta>; frame-ancestorsnon eredita dadefault-src: una policy condefault-src 'none'lascia comunque incorporare la pagina da chiunque.
Un inventario documentato delle risorse rende più semplice valutare le aggiunte future e dà al team una spiegazione per ogni permesso concesso.
4. Fai di HTTPS un’abitudine del browser con HSTS
L’header Strict-Transport-Security dice al browser di usare solo HTTPS per quell’host per il numero di secondi indicato in max-age, trasformando in HTTPS anche i tentativi futuri in HTTP. Il browser impara la regola da una risposta HTTPS valida; se l’header arriva su HTTP, lo ignora. Per questo il redirect da HTTP a HTTPS resta necessario: meglio se permanente (301 o 308) e verso la stessa risorsa sullo stesso host. Il redirect non deve contenere l’header, che va invece sulla risposta HTTPS. HSTS non protegge la primissima visita, prima che il browser abbia ricevuto l’header.
C’è un effetto da conoscere prima di attivarlo: su un host con HSTS il browser non permette di proseguire ignorando un errore di certificato. Se il certificato scade, chi ha già visitato il sito non riesce ad aprirlo finché non viene rinnovato. Il registro dei certificati della sezione 1 diventa quindi parte integrante della gestione di HSTS.
Il sito hstspreload.org suggerisce di aumentare max-age per gradi (cinque minuti, una settimana, un mese), controllando a ogni passo che non si rompa nulla. L’opzione includeSubDomains estende la regola a tutti i sottodomini: confrontala con il tuo inventario, perché un sottodominio ancora servito solo in HTTP smetterebbe di funzionare. Anche con includeSubDomains, ogni sottodominio dovrebbe inviare il proprio header. Per disattivare HSTS si pubblica max-age=0, ma solo su HTTPS.
Il precaricamento (preload) inserisce il dominio in un elenco distribuito con i browser, valido anche per la prima visita. Oggi però lo stesso hstspreload.org raccomanda HSTS e sconsiglia il precaricamento: browser come Chrome e Safari portano già automaticamente su HTTPS le navigazioni in HTTP, e il preload serve solo quando questo passaggio fallisce per l’intervento di un attaccante. Uscire dall’elenco richiede mesi, e chi distribuisce configurazioni o strumenti non dovrebbe inserire preload per impostazione predefinita. La pagina di MDN su HSTS descrive tutte le opzioni.
6. Osserva il risultato come lo vede il visitatore
Apri gli strumenti per sviluppatori del browser, carica una pagina normale e segui i reindirizzamenti fino alla risposta finale. Esamina il certificato, gli header e i cookie effettivamente consegnati. È il modo più diretto per collegare la configurazione all’esperienza del visitatore e per capire quale componente, tra applicazione, proxy e CDN, aggiunge ciascuna impostazione.
- Visita via HTTPS tutti i nomi pubblici previsti, e prova anche l’indirizzo con
http://per controllare il redirect. - Annota i dettagli del certificato e gli header della risposta finale.
- Completa accesso, recupero della password, pagamento incorporato e ritorni da servizi esterni.
- Controlla la console e la destinazione delle segnalazioni CSP.
Conserva una copia datata della configurazione e indica chi gestisce ogni livello. Quando cambia l’hosting o arriva una nuova integrazione, ripeti lo stesso percorso per verificare che il comportamento sia quello previsto. Un rilascio pianificato e la configurazione precedente a portata di mano permettono di tornare indietro senza improvvisare. La checklist che ne risulta è anche una buona introduzione al sito per chi lo gestirà in futuro.
Per controllare subito gli header di un sito, usa la verifica degli header di sicurezza HTTP gratuita.
7. Tieni la mappa delle protezioni vicino al sito
Raccogli in un unico posto nomi pubblici, responsabili dei certificati, risorse caricate dal browser e percorsi importanti. Per un primo controllo dall’esterno puoi usare lo snapshot gratuito di Sitelemetry: otto controlli passivi su un’origine pubblica, senza registrazione; non è un penetration test. Restituisce un punteggio, un voto separato di rafforzamento (hardening) per header di sicurezza e TLS e al massimo tre segnali da guardare per primi. Per TLS esegue un solo handshake e verifica che la catena sia attendibile, che il certificato non sia scaduto né in scadenza entro 30 giorni e che il protocollo negoziato sia TLS 1.2 o 1.3; non elenca tutte le versioni e le suite accettate dal server. Per gli header guarda la risposta finale dopo al massimo 5 reindirizzamenti e controlla soprattutto la presenza di CSP, HSTS, protezione dai frame, nosniff e Referrer-Policy, oltre ai cookie privi di HttpOnly o Secure; SameSite non viene valutato. Il redirect da HTTP a HTTPS viene provato solo se inserisci un indirizzo che inizia con http://, e in quel caso il controllo TLS viene saltato. La guida all’audit di sicurezza del sito collega questi livelli ad account, permessi e manutenzione quotidiana.
Domande frequenti
Come lavorano insieme TLS e header di sicurezza?
TLS cifra la comunicazione e permette al browser di verificare l’identità del server tramite il certificato. Gli header arrivano dentro quella connessione e dicono al browser come trattare contenuti, cookie e visite successive.
Come si introduce una CSP senza bloccare il sito?
Fai l’inventario delle risorse usate nei percorsi principali, pubblica la policy con l’header Content-Security-Policy-Report-Only, analizza le segnalazioni e passa all’header definitivo quando i percorsi rappresentativi non ne generano più di inattese.
HttpOnly rende sicuro un cookie?
HttpOnly impedisce agli script della pagina di leggere il cookie, ma non lo cifra e non ne blocca l’invio: il browser continua a mandarlo con le richieste verso il sito. Limita il furto della sessione tramite XSS senza impedire l’XSS, quindi va usato insieme a Secure, SameSite e a una CSP.
Conviene attivare il preload di HSTS?
Il sito che gestisce l’elenco, hstspreload.org, oggi lo sconsiglia: raccomanda HSTS ma non il precaricamento, perché Chrome e Safari portano già le navigazioni su HTTPS, e uscire dall’elenco richiede mesi. Se lo valuti comunque, verifica prima che tutti i sottodomini funzionino in HTTPS.
Che cosa annotare nel registro dei certificati?
Nomi pubblici, fornitore del certificato, scadenza, metodo di rinnovo, responsabile e differenze tra CDN e origine. La durata massima dei certificati pubblici è già scesa a 200 giorni e calerà ancora, quindi affianca al rinnovo automatico un controllo indipendente della scadenza.
Fonti e approfondimenti
- MDN: Content-Security-Policy-Report-Onlydeveloper.mozilla.org
- MDN: guida a Content Security Policydeveloper.mozilla.org
- MDN: Strict-Transport-Securitydeveloper.mozilla.org
- MDN: Set-Cookiedeveloper.mozilla.org
- OWASP: HTTP Headers Cheat Sheetcheatsheetseries.owasp.org
- OWASP: Transport Layer Security Cheat Sheetcheatsheetseries.owasp.org
- OWASP: Session Management Cheat Sheetcheatsheetseries.owasp.org
- HSTS Preload List Submissionhstspreload.org
- CA/Browser Forum: Ballot SC081v3, riduzione della durata dei certificaticabforum.org
- Let’s Encrypt: fine del servizio di avviso di scadenzaletsencrypt.org
- ACN: Linee guida Funzioni crittografiche, Transport Layer Security (TLS), v2.0www.acn.gov.it
A cura della redazione di Sitelemetry. Le fonti collegate permettono di approfondire gli argomenti.



