注意事项
644
,owner
为root
,因此修改原文件需要root
账户权限
问题描述
通过群晖建站时,在WebStation虚拟主机设置中为了实现HSTS,已勾选HSTS按钮。但原版WebStation设置中HSTS的Header
并不符合加入到HSTS preload list中的要求,主要表现为:
Header
中max-age
为15768000
,不足一年Header
中没有includeSubDomains
和preload
因此考虑修改WebStation中关于HSTS
的模板文件以满足加入HSTS preload list
的要求。
修改WebStation中HSTS模板文件
通过不断摸索,找到了WebStation中控制HSTS选项的模板文件,路径为/volume1/@appstore/WebStation/misc/SSLProfile.mustache
,可以通过Winscp
或者Putty
修改该文件,将原文件中的
{{#SSLProfile.hsts}}add_header Strict-Transport-Security max-age=15768000;{{/SSLProfile.hsts}}
修改为
{{#SSLProfile.hsts}}add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";{{/SSLProfile.hsts}}
max-age
必须至少为31536000
,即一年时间
修改后保存文件,进入WebStation的
虚拟主机
界面,重新启用HSTS即可。如果之前HSTS已经勾选,需要取消勾选,保存后再次勾选启用。验证是否成功修改HSTS
启用HSTS后,进入搭建好的网站,浏览器按F12
进入开发者模式,进入Network
,Ctrl+F5
清除浏览器缓存刷新,选中ALL
中的任意元素,在Headers
中的Response Headers
中如果发现Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
字样,则说明修改成功。
其他方式探索
建站时群晖后端选择的是Apache 2.4
,因此在这里仅以Apache 2.4
为例,Nginx
可查看网上其他教程。修改群晖Apache 2.4
的配置文件也可以改变header中HSTS的内容。
Apache 2.4
为后端的WebStation虚拟主机,而以Nginx
和其他Apache版本
为后端的虚拟主机仍然不受影响,还会继续维持原来的状态
Header
中出现2个HSTS报文
修改群晖Apache 2.4配置文件
经过探索,发现群晖Apache 2.4
配置文件的路径为/volume1/@appstore/Apache2.4/usr/local/etc/apache24/conf/httpd24.conf
,通过Winscp
或者Putty
找到其中的
……
<IfModule unixd_module>
User http
Group http
</IfModule>
ErrorLog /run/apache24-error_log
TraceEnable off
LogLevel error
……
在这段后加入
#HSTS
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>
加入后整体效果为
……
<IfModule unixd_module>
User http
Group http
</IfModule>
ErrorLog /run/apache24-error_log
TraceEnable off
LogLevel error
#HSTS
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>
……
确认无误后保存。之后可以在软件中心重启Apache 2.4
,或者通过Putty
执行synoservice --restart pkgctl-Apache2.4
命令重启Apache 2.4
,然后按前文所述的方法检查是否成功修改HSTS。
版权属于:Edward Kong
本文链接:https://kong.ink:666/archives/Modify-https-Header-for-HSTS-in-Synology-WebStation
转载时请注明出处及本文链接