Olá a todos,
para as nossas instâncias auto-hospedadas atuais do Discourse, precisamos adicionar “IncludeSubDomains” aos nossos cabeçalhos STS devido a ser uma expectativa dos nossos scanners internos.
Anteriormente, eu conseguia isso usando alguns comandos sed no app.yml em comandos personalizados após a compilação para atualizar /etc/nginx/conf.d/discourse.conf para incluir 'add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;'
assim 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
Isso funcionava anteriormente. No entanto, parou de funcionar. Li que criar um novo arquivo de outlet deve me permitir adicionar isso 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;
No entanto, isso resulta em dois cabeçalhos STS presentes (um do template SSL e um do meu novo template). Existe uma maneira melhor de fazer isso para que eu não termine com dois cabeçalhos STS? Eu pensaria que o nginx respeitaria o último cabeçalho adicionado e ignoraria o cabeçalho do template SSL, que contém apenas max-age=31536000; , então isso é um defeito? Agradeço qualquer orientação que possam fornecer.