记录一下我的群晖nas折腾http强制跳转到https过程
适用范围:群晖nas,dsm7.1&7.2beta
群晖nas如果用web station搭建的网站是没有问题的,但是如果用docker之类的就有这个问题,因为第一次访问如果是用http访问的话并不会自动跳转到https,以下内容就是解决这个问题的,https由于访问过一次浏览器就会自动缓存状态,后续访问就会一直用https,故障重现得清空缓存再测试。
准备工作:首先得申请一个泛域名证书,用acme.sh即可,没有泛域名证书谨慎操作,不然访问会错误,然后域名dns创建一个泛域名解析到nas。
开始工作:
1,群晖设置里打开SSH。
2,SSH连接到nas, 输入 sudo -i 获取root权限。
3,先备份要修改的文件
cp /usr/syno/share/nginx/WWWService.mustache /usr/syno/share/nginx/WWWService.mustache.bak
再输入
vi /usr/syno/share/nginx/WWWService.mustache
4, 输入 i ,定位到最上面,
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
gzip on;
改成以下内容,xxxxx是你要设置的域名. 注意泛域名前面有个.,二级域名不用。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name .xxxxxx.xxx;
rewrite ^(.*)$ https://$host$1 permanent;
gzip on;
修改完成按esc退出编辑,再输入:wq保存退出,然后reboot重启或 systemctl restart nginx 重启nginx。 访问试试是不是可以自动跳转到https了?
注:如果要设置裸域名 xxxxx.xxx 和泛域名*.xxxxx.xxx ,请使用 .xxxxx.xxx 格式,域名可以使用裸域名或二级域名,也可以输入多个域名用空格隔开。