Qué es HSTS
HSTS (HTTP Strict Transport Security) es un header HTTP que le dice al navegador: “siempre conéctate a este dominio por HTTPS, nunca HTTP”. Una vez recibido, el navegador recordará esta política durante un tiempo definido.
Por qué importa
Sin HSTS, hay una ventana de ataque:
- Usuario teclea
tudominio.es(sin https://) - Navegador envía petición HTTP
- Tu servidor redirige a HTTPS con 301
- Durante ese tráfico HTTP inicial, atacante puede interceptar
Con HSTS, el navegador hace la petición directamente HTTPS desde el primer intento, cerrando esa ventana de ataque.
Cómo configurarlo
Añade este header a todas las respuestas HTTPS:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Significado:
max-age=31536000: válido durante 1 año (en segundos)includeSubDomains: aplica también a todos los subdominiospreload: te incluye en la lista de Chrome (HTTPS forzado desde el primer acceso)
Cómo configurarlo según plataforma
Cloudflare
Panel → SSL/TLS → Edge Certificates → HSTS → habilitar.
NGINX
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Astro (en _headers para Cloudflare Pages)
/*
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
HSTS Preload list
Si añades preload, puedes registrar tu dominio en hstspreload.org. Chrome lo incluirá en su lista interna: ningún navegador Chrome volverá a usar HTTP para tu dominio nunca, ni siquiera la primera visita.
Atención: una vez en preload, no puedes salir fácilmente. Solo activa si estás 100% seguro de tener HTTPS forever en todo tu dominio y subdominios.
Verificar HSTS
Headers de respuesta de tu web → buscar Strict-Transport-Security. O usar securityheaders.com.