Quando inseriamo un URL in un browser, utilizza HTTP per impostazione predefinita, ma se il server supporta solo HTTPS, il traffico reindirizza automaticamente a https senza che l'utente se ne accorga?
Ho ragione?
Se sbagliato, correggimi.
No, al momento nessun browser principale reindirizza automaticamente a HTTPS.
Il sito web può impostare l'intestazione HSTS per indicare ai browser che dovrebbero reindirizzare automaticamente a HTTPS per richieste future, oppure possono registrarsi nell'elenco di precaricamento HSTS e gli utenti possono installare plug-in del browser per caricare sempre HTTPS basato su una lista bianca o anche per provare sempre HTTPS . Tutti questi sono opt-in, o il sito Web o l'utente deve fare qualcosa per fare il browser a fare questo. Nella sua configurazione predefinita, senza azioni esplicite da parte dell'utente o del sito Web, nessun browser principale utilizza automaticamente HTTPS.
No.
Devi reindirizzare esplicitamente il traffico HTTP a HTTPS che comporta la configurazione del tuo server web con una regola che restituisce HTTP 301
codice di stato e un'intestazione di posizione che inizia con https://
.
Quindi ad esempio in Nginx dovresti scrivere qualcosa come:
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri;
}
Inoltre, è possibile aggiungere un'intestazione HTSS (Http Strict Transport Security) alle risposte delle richieste ricevute sulla porta HTTPS. Ciò assicurerà che il browser invii tutte le richieste successive alla porta HTTPS.
Ancora una volta, in Nginx dovresti fare questo:
server {
listen 443 ssl;
server_name my.domain.com;
add_header Strict-Transport-Security "max-age=31536000";
}
Leggi altre domande sui tag http web-browser tls url-redirection