Come viene convertito HTTP in HTTPS quando non è presente HSTS?

0

Supponiamo che tu abbia un sito web link

Ora disponi anche di un certificato SSL, il che significa che gli utenti possono accedere al sito in modo sicuro utilizzando il link

Ma se scrivo link nella barra degli indirizzi, in che modo il client può convertirlo in link quando non utilizzava l'intestazione di risposta HSTS (che obbliga il client a utilizzare https).

In altre parole, se vado alla porta 80, come sono reindirizzato alla porta 443?

    
posta Utkarsh Agrawal 05.07.2018 - 06:57
fonte

1 risposta

5

Il sito ti sta reindirizzando manualmente alla versione HTTPS del sito, in genere utilizzando l'HTTP 301 reindirizza il codice di stato . Questo è non sicuro come HSTS perché è vulnerabile a un attacco MITM , ma ti fa passare in modo trasparente alla versione crittografata del sito. Questo comportamento deve essere configurato nel server per funzionare. Il server può essere utilizzato per eseguire automaticamente il reindirizzamento 301 su tutte le pagine o solo per determinate pagine come quelle con campi di immissione password.

Il client invia prima una richiesta alla versione non crittografata del sito:

GET /index.html HTTP/1.1
Host: www.example.com

Il sito risponde quindi con un reindirizzamento:

HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/index.html

Questo indica al tuo browser di inviare un'altra richiesta GET, questa volta alla porta 443 con TLS.

Si noti che, anche quando viene utilizzato HSTS, ciò è ancora necessario per la connessione prima . Le intestazioni HSTS possono essere impostate solo tramite il protocollo HTTPS, pertanto un reindirizzamento viene solitamente utilizzato per indicare al browser di utilizzare il protocollo crittografato la prima volta. Solo in seguito il browser ricorderà che dovrebbe riscrivere tutte le richieste alla versione crittografata del sito senza prima essere informato.

    
risposta data 05.07.2018 - 07:06
fonte

Leggi altre domande sui tag