Tu web sigue siendo insegura sin políticas estrictas de HSTS
Análisis de sanciones AEPD y cumplimiento LOPDGDD.
Directivas para Nginx, Apache y Cloudflare.
Manual para entrar en la lista de confianza total.
La mentira del HTTPS: El "pecado original" de la redirección
Muchos desarrolladores creen que por tener el candadito verde (o gris, según tu navegador) ya están a salvo. Pero hay un problema: los navegadores son vagos por naturaleza.
Cuando escribes twitter.com en la barra de direcciones, el navegador no sabe si hablas HTTPS o HTTP. Por defecto, intenta la vía fácil: el puerto 80 (HTTP). Tu servidor, que es muy educado, le responde con un redirect 301: “Eh, vete por el puerto 443”.
Ese milisegundo entre la petición HTTP y la redirección es el paraíso para un atacante.
La Analogía del Camión Blindado
Imagina que tienes que enviar un millón de euros en un camión blindado (HTTPS). Pero para que el camión llegue a tu puerta, primero tienes que llamar por un megáfono en la calle (HTTP) para pedirlo. Un ladrón que esté escuchando puede interceptar tu llamada y mandarte una furgoneta de helados disfrazada (SSL Stripping). Tú verás la furgoneta, pensarás que es el camión, y entregarás el dinero. El ladrón se lo lleva, y tú ni te has enterado porque la furgoneta parece “oficial”.
HSTS es como poner un cartel en tu puerta que dice: “Solo acepto camiones blindados. Si viene una furgoneta de helados, ni le abras la puerta”. A partir de ese momento, el navegador ya no “pregunta” por megáfono; simplemente asume que todo debe ser blindado.
¿Qué ocurre realmente en las tripas del navegador?
Cuando tu servidor envía la cabecera HSTS, el navegador guarda esa información en una base de datos local (puedes verla en Chrome escribiendo chrome://net-internals/#hsts). A partir de ese instante, ocurre algo mágico llamado Internal Redirect.
Si intentas entrar por HTTP, el propio navegador cancela la petición antes de que salga de tu tarjeta de red y la transforma en HTTPS. El atacante ya no tiene red que interceptar porque la petición “insegura” nunca llega a existir fuera de tu RAM.
Sin HSTS (Vulnerable)
Protocolo Opcional- → El navegador intenta conectar por HTTP (Puerto 80) por defecto.
- → SSL Stripping: Un atacante puede interceptar el redirect 301.
- → Los datos (contraseñas, cookies) viajan en texto claro al hacker.
Con HSTS (Blindado)
Transporte Estricto- ✓ El navegador transforma HTTP a HTTPS localmente (RAM).
- ✓ Nunca sale una petición insegura a la red. No hay nada que interceptar.
- ✓ Los subdominios heredan la protección automáticamente.
Visualizando el Ataque: Cómo muere un SSL standard
Pide: http://mibanco.es
Intercepta el 301
Sirve HTTP falso
Cree que habla
con el usuario
La conexión olvidada: HSTS y tus Cookies de Sesión
El efecto secundario positivo: Una vez que HSTS está activo y el navegador ha “aprendido” la política, cualquier petición a tu dominio será HTTPS por defecto. Esto significa que incluso si se te olvida poner el flag Secure en algunas cookies técnicas, el navegador las tratará con el máximo respeto porque el canal de transporte está blindado por contrato. Sin embargo, en AldeaCode siempre recomendamos duplicar la seguridad: HSTS en el transporte y Secure; HttpOnly; SameSite=Lax en las cookies. No dejes puertas abiertas.
HSTS + Secure Flag: El Combo Indestructible
Mientras que HSTS blinda la carretera (el transporte), el flag `Secure` blinda la mercancía (la cookie). Usar ambos garantiza que ningún paquete de datos caiga en manos de un atacante MitM.
¿Por qué la AEPD se ha vuelto tan estricta en 2026?
La razón es simple: la Diligencia Proactiva. Antes, si te hackeaban, podías decir que habías hecho “lo normal”. Hoy, “lo normal” incluye HSTS. En las últimas resoluciones que hemos analizado (como las de grandes aseguradoras y retailers), la falta de HSTS se cita como una “omisión de medidas técnicas básicas de cifrado en tránsito”. Ya no solo proteges tus datos; proteges tu cuenta bancaria de multas que pueden llegar a ser existenciales para una empresa.
La Trampa de Staging
Activas `includeSubDomains` en el dominio principal. De repente, tu CRM interno en `crm.tuweb.com` (que no tiene SSL) es bloqueado por el navegador. No hay botón de "Continuar". Estás fuera.
El Olvido del Redirect
Pones la cabecera, pero olvidas redirigir el puerto 80 al 443 en el servidor. El navegador nunca recibe la política. Tu escudo está apagado en el primer uso.
Recomendación de trinchera:
- Nunca empieces con un
max-agede 2 años. Empieza con 5 minutos (300 segundos). - Verifica que todas tus herramientas internas, subdominios de logs y entornos de desarrollo tienen HTTPS.
- Solo cuando estés 100% seguro de que nada se ha roto, sube el
max-agegradualmente: una semana, un mes, y finalmente los dos años reglamentarios para el Preload.
Configuración Paso a Paso: El "Zen" de las cabeceras Perfectas
Flag 'always'
Obligatorio en Nginx para que la cabecera se envíe incluso en errores 5xx.
max-age
Mínimo 31,536,000s para ser elegible para la Preload List de Google.
Redirección Local
Evita que la petición llegue al servidor, ahorrando cientos de ms de latencia.
Configurar HSTS no es solo copiar y pegar una línea. Dependiendo de tu stack, la implementación puede variar drásticamente. Aquí tienes el manual definitivo para los tres entornos más comunes.
1. Nginx: El Flag ‘always’ y por qué es crítico
En Nginx, muchos desarrolladores cometen el error de poner la cabecera sin el parámetro always.
El peligro: Si Nginx detecta un error (como un 500 Internal Server Error) y no tienes el flag always, el servidor no enviará la cabecera HSTS en esa respuesta. Si el usuario recibe un error en una red insegura, su navegador podría “olvidar” la regla HSTS justo cuando más la necesita.
# 63072000 segundos = 2 años add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
# Si usas un Proxy Inverso (como detras de un balanceador), asegúrate de que el SSL termine aquí o que la cabecera se pase correctamente.
2. Apache: El módulo mod_headers
Si estás en un hosting compartido o usas Apache, la vida es un poco más ruda. Necesitas asegurarte de que el módulo headers esté activo. Sin él, tu .htaccess provocará un error 500 y tirarás la web.
<IfModule mod_headers.c>
# Usamos 'set' para sobrescribir cualquier cabecera previa
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
</IfModule>
3. Cloudflare: La vía rápida (y peligrosa)
Si usas Cloudflare, puedes activar HSTS con un solo clic en el panel de SSL/TLS -> Edge Certificates -> HSTS.
Mi consejo de experto: Ten cuidado. Activar includeSubDomains en Cloudflare es irreversible a nivel de caché del navegador. Si tienes un subdominio que no pasa por el proxy de Cloudflare (la nube naranja apagada) y no tiene SSL, se quedará inaccesible para todos tus usuarios. Cloudflare te da el poder, pero tú eres el responsable de las consecuencias.
[!WARNING] Antes de lanzar: Verifica que no tienes subdominios técnicos (ej:
printer.empresa.localodev.legacy.com) que solo funcionen por HTTP. HSTS los bloqueará instantáneamente para cualquier usuario que haya visitado el dominio principal.
Checklist de Cumplimiento LOPDGDD 2026
Seguridad Técnica
El HSTS es el estándar exigido para demostrar que el transporte de datos es robusto.
Privacidad por Diseño
Ignorar HSTS en el despliegue es diseñar un sistema vulnerable por omisión.
Infracción Grave
La multa por "falta de medidas necesarias" puede superar los 300.000€.
Lecciones de las multas de 2025: A menudo nos preguntan: “¿De verdad me pueden multar por no tener una cabecera?”. Basándonos en los casos de Generali (€5M) y Carrefour (€3M), la respuesta es un rotundo sí. La AEPD ya no acepta la “inacción técnica” como excusa. Si lanzas un ecommerce en 2026 sin HSTS, eres legalmente responsable de las interceptaciones de sesión que ocurran en redes públicas.
Cómo verificar HSTS (como un Pro)
No te fíes de lo que dice tu código; fíjate en lo que recibe el navegador. Tienes tres formas de verificarlo:
- La Pestaña de Network (F12): Entra en tu web, haz clic en el primer recurso (el documento HTML) y busca
Strict-Transport-Securityen los Headers de Respuesta. - La Consola de Chrome: Escribe
chrome://net-internals/#hstsen tu barra de direcciones. Puedes buscar tu dominio allí y ver si el navegador lo ha “fichado”. - El Comando de Terminal (Curl):
curl -I https://tuweb.com
La HSTS Preload List: Blindaje "Modo Dios"
HSTS tiene una debilidad: la primera visita (TOFU - Trust On First Use). Si un usuario nunca ha entrado a tu sitio, su navegador no sabe que debe forzar HTTPS.
La Preload List es una base de datos incluida directamente en el código fuente de los navegadores (Chrome, Safari, Edge). Si tu dominio está allí, el navegador jamás intentará conectar por HTTP, ni siquiera la primera vez.
Requisitos Auditados para Preload:
- Servir un certificado SSL válido.
- Redirigir todo el puerto 80 al puerto 443 en el mismo host.
- Servir todos los subdominios sobre HTTPS.
- La cabecera debe tener
max-age≥ 31,536,000s,includeSubDomainsypreload.
Pre-Check Técnico
Verificar que todos los subdominios soportan HTTPS sin fallos.
Inyección del Header
Añadir max-age=63072000; includeSubDomains; preload siempre (always).
Envío a hstspreload.org
Registrar el dominio para que los navegadores lo incluyan en su código fuente.
Una vez configurado, envía tu dominio para inspección en: hstspreload.org.
HSTS-only mode y el Roadmap de seguridad 2026
¿Hacia dónde vamos? La tendencia en los navegadores modernos (como las últimas versiones de Chrome y Firefox) es el “HTTPS-First Mode”. Sin embargo, esto no sustituye a HSTS; lo complementa.
En un futuro cercano, el objetivo es eliminar por completo la necesidad de que el servidor responda por el puerto 80. HSTS es el puente necesario para esta transición. Al forzar una política de transporte estricta, estás comunicando a la red que tu sitio ha nacido para vivir en el cifrado.
Mi predicción para 2026: Veremos una integración más profunda de HSTS con los registros de DNS (mediante el registro HTTPS SVCB/HTTPS). Esto permitirá que el navegador sepa que debe usar HTTPS incluso antes de que se resuelva la IP del servidor. Si ya tienes implementado HSTS y estás en la Preload List, tu sitio ya está preparado para esta evolución tecnológica.
HSTS Preload Estándar
Blindaje basado en listas locales del navegador. Redirección en RAM.
Registros SVCB/HTTPS
El DNS informa al navegador sobre el soporte HTTPS antes del primer byte.
HSTS Mandatory DNS-SEC
Protocolo de transporte blindado por defecto a nivel de resolución de red.
Rendimiento y SEO Técnico: La velocidad del "Zero-Redirect"
HSTS mejora tu ranking por dos vías que a menudo pasan desapercibidas para los consultores SEO junior:
- Eliminación de Latencia (TTFB): Al evitar el redirect 301 en el servidor, el navegador salta directamente a la conexión segura. En conexiones móviles (4G/5G), esto ahorra entre 200ms y 500ms de latencia inicial. Google ama los sitios que responden rápido, y eliminar un viaje de ida y vuelta al servidor es la optimización más pura que existe.
- Canonicalización Forzada: Evita que Google indexe versiones HTTP de tus URLs. Se acabó el drama de tener
http://tuweb.comyhttps://tuweb.comcompitiendo en las SERPs. Con HSTS, la versión HTTP deja de existir permanentemente para el bot.
Para perfeccionar tu infraestructura técnica, combina HSTS con nuestra Guía Maestra de CSP y la protección ante riesgos de Seguridad LOPD. Si quieres automatizar todo este proceso de auditoría, nuestra SEO Expert App detecta la ausencia de cabeceras de seguridad y fallos de protocolo en segundos.
Preguntas Frecuentes (FAQ) sobre HSTS y Seguridad en 2026
¿Es legalmente obligatorio el uso de HSTS en España?
Bajo la interpretación actual de la AEPD, el uso de HSTS es una medida técnica obligatoria para cumplir con el Art. 32 del RGPD (Seguridad del tratamiento), especialmente cuando se manejan datos de salud, financieros o perfiles de usuario sensibles.
¿Cuál es el max-age recomendado para una auditoría?
Se recomienda un max-age de 63072000 segundos (2 años). Este es el estándar de oro para garantizar la protección a largo plazo y es el requisito mínimo para entrar en la HSTS Preload List de Chrome.
¿Por qué mi web no aparece en hstspreload.org tras configurarlo?
La inclusión no es instantánea. Debes enviar manualmente tu dominio y cumplir con requisitos estrictos: certificado SSL válido, redirección de HTTP a HTTPS y que la cabecera incluya los parámetros `includeSubDomains` y `preload`.
¿HSTS mejora el SEO de mi página?
Sí. Al eliminar el redirect 301 en el servidor, mejoras el Time to First Byte (TTFB) y la experiencia de usuario (CWV). Además, previene la indexación de versiones HTTP duplicadas, concentrando todo el Link Equity en la versión segura.
¿Qué pasa si activo HSTS y un subdominio no tiene SSL?
Si usas `includeSubDomains`, ese subdominio quedará inaccesible para cualquier usuario que haya visitado el dominio principal. Los navegadores bloquearán la conexión sin posibilidad de bypass.
¿La cabecera HSTS se debe aplicar en el index o en todo el sitio?
La cabecera debe enviarse en todas las respuestas del servidor. Sin embargo, una vez que el navegador la recibe una vez, la aplicará a todo el dominio (y subdominios si así se configura) durante el tiempo definido en el `max-age`.
¿Diferencia entre HSTS y redirección 301?
El 301 ocurre en el servidor (vulnerable al primer segundo de ataque); el HSTS ocurre en el navegador (blindaje local). El HSTS es una política de seguridad, no solo una regla de navegación.
¿Qué sanción impuso la AEPD a Carrefour por fallos de este tipo?
La sanción alcanzó los 3 millones de euros debido a la falta de medidas de seguridad robustas en el transporte de datos, lo que se considera una infracción de la confidencialidad y seguridad (Art. 32 RGPD).