GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo habilitar la política HSTS (HTTP Strict Transport Security) en Nginx y Apache

Según el estudio de Netcraft, el 95 % de los servidores HTTPS son vulnerables a los ataques Man-in-the-Middle. Por lo tanto, es muy importante implementar HSTS correctamente. HSTS (HTTP Strict Transport Security) es una política que protege los sitios web contra ataques maliciosos como el secuestro de clics, las degradaciones de protocolo y los ataques de intermediarios, como se explicó en mi artículo anterior. En este artículo, veremos varios pasos para habilitar HSTS en NGINX y Apache.

Cómo habilitar HSTS en Nginx

Abra su archivo de configuración de Nginx para el dominio que necesita para habilitar HSTS.

Por ejemplo:/etc/nginx/conf.d/tg.conf

Agregue la siguiente línea a su bloque de servidor de HTTPS:

NO AGREGAR HSTS al bloque HTTP
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;
parámetro includeSubDomains

El includeSubDomains opcional El parámetro le dice al navegador que la política HSTS también se aplica a todos los subdominios del dominio actual.

Siempre parámetro

El always El parámetro garantiza que el encabezado esté configurado para todas las respuestas, incluidas las respuestas de error generadas internamente.

Para tener el HSTS configurado para un período de tiempo de 1 año, establezca max-age en 31536000 (en segundos). Deben ser al menos 3 meses para satisfacer los requisitos de seguridad.

Reiniciar servicio Nginx

Antes de reiniciar, verifique el archivo de configuración como se muestra a continuación:

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie el servidor Nginx para tomar los nuevos cambios.

# systemctl restart nginx

Cómo habilitar HSTS en Apache

Para habilitar HSTS en Apache, necesitamos tener mod_headers módulo instalado. Ejecute el siguiente comando para averiguar si el módulo ya está instalado.

# apachectl -M | grep headers
 headers_module (shared)

si lo tiene, procedamos a configurar los ajustes de encabezado del dominio que necesita para habilitar HSTS. Abra el archivo de configuración que contiene el VirtualHost que usa SSL.

For eg: /etc/httpd/conf.d/tg.conf

Agregue la siguiente configuración dentro de su VirtualHost para el puerto 443 de la siguiente manera:

<VirtualHost *:443>
......
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
......
</VirtualHost>

Reiniciar el servicio Apache

Antes de reiniciar, verifique el archivo de configuración como se muestra a continuación:

# apachectl configtest
Syntax OK

Si la sintaxis es correcta, reinicie el servidor Apache para realizar los nuevos cambios.

# systemctl restart httpd       ## Redhat systems

# systemctl restart apache2     ## Debian systems

¡Eso es todo! Pruebe el servidor web para ver si se ha habilitado el HSTS.

$ curl -kIs https://example.com | grep Strict
Strict-Transport-Security: max-age=31536000; includeSubDomains

Linux
  1. Cómo redirigir HTTP a HTTPS en Nginx

  2. Cómo habilitar HTTP/2 en Nginx

  3. Cómo habilitar HTTP2 en NGINX

  4. Cómo habilitar HTTP/2 en Nginx en Ubuntu y CentOS

  5. Cómo habilitar la confidencialidad directa perfecta de SSL/TLS en Apache o Nginx

Cómo habilitar HTTP/2.0 en Nginx

Cómo habilitar HTTP/2 en Apache en el sistema Linux

Cómo habilitar HTTP/2.0 en el servidor Nginx:guía paso a paso

Cómo habilitar HTTP/2 con Apache en Ubuntu

Cómo configurar Nginx como equilibrador de carga para Apache o Tomcat para HTTP/HTTPS

Cómo habilitar HTTP/2.0 en Nginx en CentOS