apache - para - hsts check
Cómo configurar el encabezado de HSTS desde.htaccess solo en HTTPS (3)
Aparentemente hay una variable de entorno HTTPS disponible que se puede usar fácilmente. Para personas con la misma pregunta:
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
Mi aplicación web se ejecuta en una cantidad diferente de hosts que yo controlo. Para evitar la necesidad de cambiar la configuración de Apache de cada vhost, agrego la mayoría de las configuraciones usando los archivos .htaccess en mi repositorio, por lo que la configuración básica de cada host es solo un par de líneas. Esto también permite cambiar la configuración al implementar una nueva versión. Actualmente, .htaccess (un) establece encabezados, algunos reescriben magia y controlan el almacenamiento en caché del UA.
Quiero habilitar HSTS en la aplicación usando .htaccess. Solo configurar el encabezado es fácil:
Header always set Strict-Transport-Security "max-age=31536000"
Pero la especificación establece claramente: "Un host HSTS NO DEBE incluir el campo de encabezado STS en las respuestas HTTP transmitidas a través de un transporte no seguro". Por lo tanto, no deseo enviar el encabezado cuando lo envíe a través de conexiones HTTP. Ver http://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14 .
Traté de establecer el encabezado utilizando entornos vars, pero me quedé atrapado allí. ¿Alguien que sabe cómo hacer eso?
Para httpd.conf
(si tiene acceso para editar esto) puede usar
<VirtualHost 65.81.122.43:443>
Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains;"
</VirtualHost>
NOTA: debe configurarlo únicamente en el host de HTTPS y no puede estar en http vhost.
¿Cuándo debería, y no debería usar archivos .htaccess?
Permitir archivos .htaccess hará que Apache los busque en cada acceso a su servidor. Como también se buscan directorios principales, esto llevará algo de tiempo (pequeño) y puede afectar el rendimiento de su servidor. Source
Para aprovechar la respuesta de nielsr, utilicé lo siguiente en .htaccess para cumplir con las recomendaciones de implementación segura en https://hstspreload.org, que codificarán el dominio en el navegador Chrome. Tenga en cuenta que esto impondrá HSTS en sus subdominios, y que la inclusión en la lista de precarga no se puede deshacer fácilmente, por lo tanto, rtfm.
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
</IfModule>