Hola a todos,
para nuestras instancias de Discourse autoalojadas actuales, necesitamos agregar “IncludeSubDomains” a nuestros encabezados STS debido a que es una expectativa de nuestros escáneres internos.
Anteriormente, logré esto usando algunos comandos sed en app.yml en comandos personalizados después de la compilación para actualizar /etc/nginx/conf.d/discourse.conf para incluir 'add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;'
así como:
- replace:
filename: "/etc/nginx/conf.d/outlets/discourse/20-https.conf"
from: /add_header Strict-Transport-Security.+/
to: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
global: true
- replace:
filename: "/etc/nginx/conf.d/outlets/server/20-https.conf"
from: /add_header Strict-Transport-Security.+/
to: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
global: true
Esto funcionó anteriormente. Sin embargo, ha dejado de funcionar. Leí que crear un nuevo archivo de salida debería permitirme agregar esto usando:
hooks:
after_code:
- file:
path: /etc/nginx/conf.d/outlets/server/90-hsts.conf
chmod: 444
contents: |
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Sin embargo, esto resulta en que haya dos encabezados STS presentes (uno de la plantilla SSL y uno de mi nueva plantilla). ¿Hay una forma mejor de hacer esto para no terminar con dos encabezados STS? Pensaría que nginx respetaría el último encabezado agregado e ignoraría el encabezado de la plantilla SSL que solo contiene max-age=31536000; , ¿así que esto es un defecto? Gracias por cualquier orientación que puedan brindarme.