Seguridad y SSL

Activar HSTS de forma gradual

Revisado el 3 min de lectura hsts https

HSTS indica al navegador que, durante el tiempo configurado, debe volver a ese nombre únicamente mediante HTTPS. El navegador lo aprende al recibir la cabecera por una conexión HTTPS válida; la cabecera enviada por HTTP se ignora.

No lo actives solo para superar una auditoría. Antes confirma que:

  • El dominio presenta un certificado válido y renovable.
  • Todo el sitio, incluidos acceso, pagos, APIs y recursos, funciona mediante HTTPS.
  • Existe una redirección estable de HTTP a HTTPS.
  • Puedes mantener HTTPS durante todo el max-age, porque los visitantes no podrán ignorar un fallo posterior.

Después puedes añadir al fichero .htaccess del dominio una política inicial corta y solo sobre HTTPS:

<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=300" "expr=%{HTTPS} == 'on'"
</IfModule>

Prueba la web y aumenta el valor gradualmente, por ejemplo a un día y después a varios meses. No añadas includeSubDomains hasta confirmar que todos los subdominios actuales y futuros funcionarán siempre por HTTPS. No añadas preload por defecto: su retirada puede tardar y exige cumplir los requisitos de la lista de precarga.

HSTS no corrige contenido mixto, un certificado inválido ni una redirección incorrecta. Soluciona esos problemas antes de ampliar la política.

Comprobar y retirar la política

En las herramientas de desarrollo del navegador, abre Red, carga la URL HTTPS e inspecciona las cabeceras de respuesta del documento. Debe aparecer una sola política Strict-Transport-Security con el valor elegido. Comprueba también páginas que redirigen o devuelven un error. Detrás de un proxy, confirma dónde termina TLS y establece la cabecera en la capa que conoce de forma fiable el protocolo del visitante; no confíes en una cabecera enviada libremente por el cliente.

La regla anterior usa expresiones de Apache 2.4. Si el servidor no la admite o devuelve un error 500, restaura el .htaccess anterior y consúltanos antes de adaptar la condición.

Quitar la línea no borra lo que los navegadores ya aprendieron. Para retirar una política normal, sirve max-age=0 por HTTPS válido; los visitantes que no vuelvan conservarán la política hasta que venza. La política de un dominio superior con includeSubDomains y la precarga requieren revisión separada. Consulta los requisitos y retirada de la lista de precarga antes de solicitarla.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.