¿Qué es HSTS? #
HSTS (HTTP Strict Transport Security o Seguridad de Transporte Estricta para HTTP) es una directiva que indica a los navegadores que siempre deben usar HTTPS para conectarse al sitio web en cuestión. En caso de que el usuario trate de forzar una conexión HTTP o que exista algún conflicto con el certificado SSL, el navegador mostrará un mensaje de error e impedirá continuar con la navegación (hay que recordar que aún cuando exista un error en el certificado SSL, si HSTS no está activo, el usuario puede ir a “Opciones Avanzadas” y visitar el sitio inseguro).
Agregar HSTS a la configuración de un sitio web agrega una capa adicional de protección y seguridad para los visitantes, al impedir por todos los medios una conexión insegura. Además previene ataques por “downgrade” de version SSL/TLS o secuestro de cookies.
Configurando HSTS en Nginx #
Para agregar la directiva que forza el uso de HTTPS en Nginx, simplemente debemos editar el archivo de configuracion del dominio para el cual deseamos habilitar HSTS, regularmente se encuentran en /etc/nginx/sites-available y agregar la siguiente línea dentro del bloque “server”:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
Una vez hecho esto, debemos recargar o reiniciar el servidor Nginx para que la nueva configuración tome efecto, dependiendo de la versión y distribución del sistema operativo, el comando sería alguno de los siguientes:
Recarga de configuración:
- systemctl reload nginx
- service nginx reload
- /etc/init.d/nginx reload
- nginx -s reload
Para reiniciar (terminar y volver a ejecutar):
- systemctl restart nginx
- service nginx restart
- /etc/init.d/nginx restart
- nginx -s restart
Una vez recargado Nginx ya la directiva HSTS debe ser efectiva.
Comprobando que HSTS esta activo #
Para confirmar que HSTS está activo tenemos dos opciones:
Desde la línea de comandos ejecutar:
curl -I https://eldominioseguro.com
Y buscar la línea que inicia con Strict-Transport-Security, si aparece, entonces quiere decir que hemos habilitado HSTS correctamente.
La segunda opción es usar una herramienta en línea, como la ofrecida en SSLUtil y recibir una versión amigable del resultado.