HTTP Strict Transport Security (HSTS) indica a los navegadores que usen HTTPS en un sitio durante un tiempo, aunque alguien escriba http:// o siga un enlace http://. El borde ya redirige HTTP a HTTPS; HSTS elimina esa primera petición sin cifrar.
Cómo lo envía el borde
Cuando hsts.max_age es mayor que 0, el borde añade esta cabecera a todas las respuestas HTTPS del sitio:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preloadincludeSubDomainssolo aparece conhsts.include_subdomains, ypreloadsolo conhsts.preload.- La cabecera nunca se envía en respuestas por HTTP.
- Con HSTS activado, el valor del borde sustituye a cualquier cabecera
Strict-Transport-Securityde tu origen. Con HSTS desactivado (max_age0), la del origen pasa tal cual.
Ajustes
| Ajuste | Valores | Por defecto |
|---|---|---|
hsts.max_age | Segundos, de 0 a 63072000 (2 años). 0 = sin cabecera. | 0 |
hsts.include_subdomains | true / false | false |
hsts.preload | true / false | false |
Como el resto de ajustes del borde, HSTS se puede fijar para toda la zona o sustituir para un nombre (hosts.<nombre>.hsts).
Actívalo
En SSL/TLS › Certificados › HSTS, elige una Duración (1 día, 6 meses, 1 año o 2 años), activa Incluir subdominios y Permitir precarga (preload) si lo necesitas y pulsa Guardar cambios.
openwaf-cloud ctl zones set example.com hsts.max_age=86400 --reason "HSTS, 1 día para empezar"
openwaf-cloud ctl zones set example.com hsts.max_age=31536000 hsts.include_subdomains=true --reason "HSTS 1 año"curl -s -X PATCH https://dash.openwaf.dev/v1/orgs/$ORG/zones/$ZONE/edge \
-H "Authorization: Bearer $OPENWAF_TOKEN" \
-H "Content-Type: application/json" \
-H "X-Change-Reason: HSTS 1 año" \
-d '{"hsts": {"max_age": 31536000, "include_subdomains": true}}'update_settings con {"zone": "example.com", "settings": {"hsts": {"max_age": 31536000, "include_subdomains": true}}, "reason": "HSTS 1 año"}, primero con confirm=false y después con confirm=true y expected_version.
Compruébalo:
curl -sI https://www.example.com/ | grep -i strict-transport-securityPrecarga
Permitir precarga (preload) añade la directiva preload, que permite enviar el dominio a la lista de precarga de HSTS integrada en los navegadores. Los navegadores exigen una duración de al menos 1 año con los subdominios incluidos.
Desactívalo
Pon hsts.max_age a 0 (Duración › Desactivado). Los navegadores que ya vieron la cabecera siguen usando HTTPS hasta que se agota el max-age que guardaron.