Scenario opposto: solo HTTPS funziona
Caso più comune dell'altro verso: il sito risponde solo via HTTPS e l'HTTP è rotto. Generalmente questo è il comportamento desiderato in produzione (forziamo HTTPS), ma talvolta accade per errore di configurazione che blocca completamente HTTP invece di redirezionarlo.
Redirect HTTP -> HTTPS
La configurazione corretta non è bloccare HTTP, ma reindirizzarlo a HTTPS. Su Apache:
<VirtualHost *:80> ServerName tuosito.it Redirect permanent / https://tuosito.it/ </VirtualHost>
Su Nginx:
server {
listen 80;
server_name tuosito.it;
return 301 https://$host$request_uri;
}Porta 80 in ascolto?
Verifica che il server stia ancora in ascolto sulla 80 per gestire il redirect: ss -tlnp | grep :80. Se manca, riabilita Listen 80 in Apache. Anche Let's Encrypt usa la porta 80 per la validazione (HTTP-01 challenge): se la chiudi, il rinnovo automatico fallisce.
Cloudflare Always Use HTTPS
Se usi Cloudflare, l'opzione "Always Use HTTPS" (SSL/TLS > Edge Certificates) gestisce il redirect HTTP->HTTPS a livello di edge, senza bisogno di configurarlo sul tuo server. Più rapido e con cache CDN per il redirect. Mantieni comunque la 80 aperta sul origin per Let's Encrypt.
HSTS attivo
L'header HSTS (HTTP Strict Transport Security) istruisce i browser a non usare mai HTTP per il dominio in futuro. Una volta che il browser ha visto questo header, anche se l'utente digita http://, il browser stesso reindirizza prima ancora di inviare la richiesta. Configura HSTS solo dopo aver verificato che HTTPS è stabile:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Asset misti
Dopo aver attivato HTTPS, eventuali asset (immagini, JS, CSS) caricati via HTTP causano warning "Mixed Content" nei browser moderni che possono bloccare gli script. Verifica nel sorgente HTML tutti i riferimenti assoluti http:// e convertili a https:// o relativi (//tuosito.it). Strumenti come whynopadlock.com identificano problemi mixed content.
Redirect loop in HTTPS
Errore tipico: se Cloudflare è in modalità Flexible (HTTP verso origin) ma il server forza HTTPS, si crea loop infinito. Sintomo: ERR_TOO_MANY_REDIRECTS. Soluzione: Cloudflare in modalità Full o Full Strict, oppure rimuovi il redirect dal server e lascia gestire a Cloudflare.
Browser cache 301
Il redirect 301 è cachato dal browser. Se per errore hai messo un 301 sbagliato, i browser continuano a usarlo anche dopo correzione. Usa 302 (temporaneo) durante test e passa a 301 (permanente) solo a configurazione consolidata. Per debug, prova sempre in modalità incognito.
Hai bisogno di aiuto?
Se il tuo sito ha problemi di accesso, il team di G Tech Group può aiutarti. Contattaci tramite il modulo di contatto.