Cuando ingresamos una URL en un navegador, utiliza HTTP de forma predeterminada, pero si el servidor solo admite HTTPS, ¿el tráfico se redirige a https automáticamente sin que el usuario se dé cuenta?
¿Tengo razón?
Si está mal, corríjame.
No, en este momento, los principales navegadores no se redirigen a HTTPS automáticamente.
El sitio web puede configurar encabezado HSTS para indicar a los navegadores que deben redirigirse a HTTPS automáticamente para futuras solicitudes, o pueden registrarse en la lista de precarga de HSTS , y los usuarios pueden instalar complementos del navegador para cargar siempre HTTPS basado en una lista blanca o incluso para probar siempre con HTTPS primero . Todos estos son opt-in, ya sea el sitio web o el usuario tiene que hacer algo para que el navegador haga esto. En su configuración predeterminada, sin una acción explícita por parte del usuario o el sitio web, ningún navegador importante usaría automáticamente HTTPS.
No.
Debe redirigir explícitamente el tráfico HTTP a HTTPS, lo que implica configurar su servidor web con una regla que devuelve el código de estado HTTP 301
y un encabezado de ubicación que comienza con https://
.
Entonces, por ejemplo en Nginx, escribirías algo como:
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri;
}
Además, podría agregar un encabezado de Seguridad de Transporte Estricto de HTTP (HSTS) a las respuestas de las solicitudes que reciba en el puerto HTTPS. Esto asegurará que el navegador envíe todas las solicitudes subsiguientes al puerto HTTPS.
De nuevo, en Nginx harías esto:
server {
listen 443 ssl;
server_name my.domain.com;
add_header Strict-Transport-Security "max-age=31536000";
}
Lea otras preguntas en las etiquetas web-browser tls http url-redirection