Всем привет,
для наших текущих самохостинговых экземпляров Discourse нам необходимо добавить «IncludeSubDomains» в заголовки STS, так как это требование наших внутренних сканеров.
Ранее я добивался этого с помощью некоторых команд sed в app.yml в пользовательских командах после сборки, чтобы обновить /etc/nginx/conf.d/discourse.conf и включить строку 'add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;.
А также:
- 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
Ранее это работало. Однако сейчас это перестало работать. Я прочитал, что создание нового файла outlet должно позволить мне добавить это следующим образом:
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;
Однако в результате появляются два заголовка STS (один из шаблона SSL и один из моего нового шаблона). Есть ли более хороший способ сделать это, чтобы не получать два заголовка STS? Я думал, что nginx будет учитывать последний добавленный заголовок и игнорировать заголовок из шаблона SSL, который содержит только max-age=31536000; , так что является ли это ошибкой? Спасибо за любую помощь, которую вы можете предоставить.