Cabecera Strict Transport Security ausente

La cabecera de respuesta HTTP Strict Transport Security (HSTS) permite que el servidor advierta a los clientes (navegadores) que sólo acepta solicitudes HTTPS. En este caso puede ser necesario redirigir las solicitudes no HTTPS a hosts virtuales habilitados para SSL.

HTTP Strict Transport Security (HSTS) es un mecanismo de política de seguridad que ayuda a proteger los sitios web contra ataques de degradación de protocolos y secuestro de cookies al indicarle al navegador que solo interactúe con el servidor a través de HTTPS.

Si un sitio web acepta una conexión a través de HTTP y redirige a HTTPS, los visitantes pueden comunicarse inicialmente con la versión no cifrada del sitio antes de que la redirección ocurra, por ejemplo, si el visitante escribe http://www.example.com/ o incluso solo example.com. Esto crea una oportunidad para un ataque de hombre en el medio MITM. La redirección podría aprovecharse por un atacante para dirigir a los visitantes a un sitio malicioso en lugar de a la versión segura del sitio original.

Por esta razón, si HSTS está habilitado, la primera vez que se accede a su sitio mediante HTTPS y devuelve el encabezado Strict-Transport-Security, el navegador registra esta información, de modo que futuros intentos de cargar el sitio mediante HTTP utilizarán automáticamente HTTPS.

Cuando transcurra el tiempo de vencimiento especificado en el encabezado Strict-Transport-Security, el siguiente intento de cargar el sitio a través de HTTP se realizará normalmente en lugar de usar HTTPS automáticamente.

Veamos ahora cómo configurar la cabecera Strict-Transport-Security en Apache:

Lo primero que se requiere es activar el módulo de Headers así:

				
					sudo a2enmod headers
				
			

A continuación reinicie Apache en su servidor:

				
					sudo systemctl restart apache2
				
			

Alternativamente, reinicie Apache así:

				
					sudo service httpd restart
				
			

Luego deberá editar el archivo

que se ubica normalmente al interior de /etc/httpd/conf/ o al interior de /etc/apache2 según su distribución de sistema operativo. También es posible que usted tenga un archivo específico de sitio web tal como example.com.conf al interior de sites-available y agregue la siguiente directiva dentro del bloque

				
					<VirtualHost> 
				
			

para el dominio deseado o globalmente:

				
					Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

				
			

La línea anterior se puede interpretar así:

  • max-age especifica la duración en segundos que se debe aplicar la política HSTS (en este caso, 31536000 segundos, lo que equivale a un año).
  • includeSubDomains garantiza que la política HSTS se aplique no solo al dominio actual sino también a todos los subdominios.
  • preload indica que su sitio debe incluirse en las listas de precarga de los navegadores, lo que significa que se incluirá automáticamente en la lista de precarga HSTS mantenida por los navegadores.

Finalice reiniciando Apache:

				
					sudo systemctl restart apache2
				
			

Esta configuración agrega el encabezado Strict-Transport-Security  a todas las respuestas enviadas por su servidor Apache, lo que ayudará a prevenir que el sitio se cargue por HTTP

También puede redirigir las solicitudes de los hosts virtuales que NO están habilitados para SSL a los hosts virtuales que están habilitados. Para ello incluya lo siguiente 

Lo primero que se requiere es activar el módulo de Rewrite así:

				
					sudo a2enmod rewrite
				
			

Al interior de su archivo de configuración example.com.conf en sites-available, deberá garantizar que el parámetro AllowOverride está configurado en All

				
					<Directory /var/www/html>
    AllowOverride All
</Directory>

				
			

y en el archivo .htacces redirija las solicitudes de los hosts virtuales que NO están habilitados para SSL a los hosts virtuales que están habilitados, para ello incluya las siguientes líneas:

				
					RewriteEngine on 
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R,L]

				
			

Realice pruebas de la redirección para comprobar que todo haya quedado en orden.

Compartir