¿Cómo se convierte HTTP a HTTPS cuando no hay un HSTS presente?

0

Supongamos que tiene un sitio web enlace

Ahora, también tiene un certificado SSL, lo que significa que los usuarios pueden acceder al sitio de forma segura utilizando enlace

Pero si escribo enlace en la barra de direcciones, ¿cómo puede el cliente convertirlo en enlace cuando no usó el encabezado de respuesta HSTS (lo que obliga al cliente a usar https).

En otras palabras, si voy al puerto 80, ¿cómo me redireccionan al puerto 443?

    
pregunta Utkarsh Agrawal 05.07.2018 - 06:57
fuente

1 respuesta

5

El sitio lo está redirigiendo manualmente a la versión HTTPS del sitio, generalmente utilizando HTTP 301 redirigir código de estado . Esto es no tan seguro como HSTS porque es vulnerable a un ataque MITM , pero hace que cambie de forma transparente a la versión encriptada del sitio. Este comportamiento debe estar configurado en el servidor para que funcione. Se puede hacer que el servidor realice automáticamente la redirección 301 en todas las páginas, o solo para ciertas páginas, como aquellas con campos de entrada de contraseña.

El cliente primero envía una solicitud a la versión no cifrada del sitio:

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

El sitio responde con una redirección:

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

Esto le indica a su navegador que envíe otra solicitud GET, esta vez al puerto 443 con TLS.

Tenga en cuenta que, incluso cuando se utiliza HSTS, esto todavía es necesario para la conexión first . Los encabezados HSTS solo pueden establecerse sobre el protocolo HTTPS, por lo que generalmente se usa una redirección para indicar al navegador que use el protocolo cifrado la primera vez. Solo después de eso, el navegador recordará que debe volver a escribir todas las solicitudes a la versión encriptada del sitio sin que se le indique primero.

    
respondido por el forest 05.07.2018 - 07:06
fuente

Lea otras preguntas en las etiquetas