Habilitar HSTS en WordPress bajo Plesk en un VPS OVH / GIGAS

Etiquetas:

HSTS es un requisito para poder dar de alta una página web en el listado estático de Google Chrome de las páginas web que solo tienen soporte HTTPS, la lista “HTTP Strict Transport Security (HSTS)”.

Si tenemos una página con HTTPS podemos comprobar aquí https://hstspreload.appspot.com/ si se cumplen los requisitos y solicitar la inclusión en el listado de sitios HTTPS.

OJO: Que nos borren de este listado es bastante complicado por lo que hay que tener claro que queremos que nos incluyan (no hay que olvidar que es un listado estático incluido en el navegador).

¿Qué significa estar incluido en el listado de Google Chrome? Que el dominio y todos sus subdominios solo son accesibles a través de HTTPS.

Por otro lado los principales navegadores como Firefox, Opera, Safari, Internet Explorer 11 y Microsoft Edge también tienen una lista HSTS basada en el listado de Chrome.

¿Qué requisitos tiene que cumplir una web para ser incluida en la lista HSTS?

¿Cómo podemos conseguir cumplir el envío correcto del encabezado?

En WordPres debemos añadir al principio del archivo .htaccess y antes de las directivas de WordPress (que empiezan en la línea de «# BEGIN WordPress») lo siguiente:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains; preload”

Con este código ya se pasará correctamente la validación de
https://hstspreload.appspot.com/

Actualización 03/sep/2016: También se puede añadir este encabezado editando el archivo nginx.conf

Añadir la siguiente línea al archivo nginx.conf (normalmente está en: /etc/nginx/nginx.conf):

add_header Strict-Transport-Security "max-age=15768000" always;

y así no tenemos que añadirlo en el archivo htaccess.

O si queremos incluir los subdominios se puede añadir:

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always;

Para comprobar la sintaxis del archivo de configuración de Nginx (/etc/nginx/nginx.conf) podemos usar:

sudo nginx -t

que nos dirá si está todo correcto.

Hacemos un restart y a funcionar.

Salir de la versión móvil