technical

Abilitare HSTS

MetricSpot verifica la presenza dell'header Strict-Transport-Security. HSTS obbliga i browser a usare HTTPS a ogni visita, chiudendo la finestra di attacco downgrade lasciata aperta dal semplice HTTPS.

Cosa controlla questo check

Ispeziona gli header della risposta HTTP per Strict-Transport-Security (HSTS). La direttiva dice a ogni browser di rifiutare connessioni in puro HTTP verso il tuo dominio per la durata di max-age.

Perché è importante

Anche con HTTPS attivo, la primissima richiesta di un nuovo visitatore è di solito in chiaro: digita tuodominio.com e il browser prova HTTP. Quella prima richiesta è una finestra per attacchi di downgrade (man-in-the-middle in stile sslstrip su Wi-Fi ostili).

HSTS chiude quella finestra. Una volta che un browser ha visto un header HSTS valido, riscrive automaticamente ogni richiesta successiva in HTTPS per tutto il max-age, ignorando gli URL http:// digitati dall’utente.

Come risolvere

Invia l’header su ogni risposta HTTPS. Un valore sicuro per la produzione:

Strict-Transport-Security: max-age=31536000; includeSubDomains

nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Apache:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Cloudflare: SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS) → attiva, imposta max-age a 12 mesi, abilita Include subdomains.

Una volta certo del setup, aggiungi ; preload e invia il dominio alla lista preload di Chrome. Vedi la pagina HSTS preload per i prerequisiti.

Domande frequenti

Quale max-age dovrei usare?

Inizia con max-age=300 (5 minuti) durante i test, poi sali a 31536000 (un anno). HSTS preload richiede almeno un anno.

HSTS mi taglia fuori se HTTPS si rompe?

Sì: è il senso. Se il tuo certificato scade o la configurazione TLS si rompe, gli utenti che hanno già visitato il sito non possono raggiungerlo via HTTP come fallback. Rinnova i certificati in modo affidabile (Let’s Encrypt + timer systemd) e monitora le scadenze.

E se non controllo i sottodomini?

Togli includeSubDomains. Il check passa lo stesso con il solo max-age, ma perdi la protezione per *.tuodominio.com. Non puoi fare preload senza includeSubDomains.

Fonti

Ultimo aggiornamento 2026-05-11