修复NextCloud启用CloudFlare后出现的HTTP的请求头安全提示
很久之前维护了一下一台服务器上的NextCloud网盘程序,做了一下升级(真的是很久之前的事,不过一直忘记写记录了……),更新到了16.0。
升级之后在NextCloud的后台能看到一个关于HTTP的提示。提示的信息是:HTTP的请求头”Strict-Transport-Security”未设置为至少”15552000”秒。为了提高安全性,建议参照security tips中的说明启用HSTS。
错误提示如下图
添加头部信息
这个问题在刚安装好NextCloud的时候还是挺常见的,解决方法也不难,参考官方的文档,在HTTP头部加入一项定义即可。
Apache环境可以直接修改网站根目录下的“.htaccess”文件。而这个网站是部署在一台VPS中,使用的是Oneinstack集成包,Nginx环境。所以要修改站点的配置文件(和伪静态规则是同一个文件)。
Nginx的站点配置文件一般是在“/usr/local/nginx/conf/vhost”目录下,文件名是该站点的网址,扩展名为.conf。
在适当的位置加入如下语句即可,一般是插入在伪静态规则(location行)的前面,如下图
最后重新加载Nginx规则即可生效。Oneinstack集成包用的命令是“service nginx reload”,LNMP继承包用的命令是“lnmp nginx reload”
一般来说这样已经解决了问题,NextCloud也不会报提示了。
但是这次的问题还没完。进入NextCloud的后台,还是能看到这个安全提示,而且从Chrome按F12打开检查器看HTTPS的头部,Strict-Transport-Security的max-age这一项与Nginx配置中指定的值不同。
这样问题就比较奇怪了,配置里明明已经加入了这行定义,为什么和浏览器读取到的不一样?反复研究了一会,想到这个站点是使用CloudFlare作为开启了CDN的,会不会是CDN修改了一些页面传输的头部?最后发现,确实是CloudFlare覆盖了Nginx定义的一些头部信息。问题找出来了,那在CloudFlare的设置中修改好相关的地方,就能解决NextCloud的这行报错了。
修改配置CloudFlare(CDN)
登录CloudFlare,进到站点的Crypto页面中
下拉找到HSTS,这一块是关于HTTP(S)安全传输方面的,点击右侧的“Change HSTS Settings”
打开的时候,页面会提示:配置HSTS一定要启用HTTPS(SSL),以及一些其他的注意事项
读完勾选下方的“I understand”,然后点击“Next”下一步
在Configure分页中,就能看到max-age这一项了,改成“6 months(Recommended)”。15552000秒等同于6个月,所以这里选择6个月以上也是行的。
另外如果上面的“Enable HSTS”没有开启,也要改成ON。
改好之后保存CloudFlare设置,回到NextCloud的后台,安全提示已经消失了,问题解决
https://xyuxf.com/archives/1762
欢迎关注 咸鱼先锋 (微信号公众号:xyuxf),获取干货推送
共有 0 条评论