2021.12.15服务器工事记录

发布于 2021-12-14  380 次阅读


今天整理浏览器收藏夹,从一个好久没访问的目录里面找到了个SSL Labs的SSL证书检测工具。

SSL Labs SSL Server Test(https://www.ssllabs.com/ssltest/)可以对网站的SSL性能与安全性进行检测评估,并且会针对检测报告生成相关的优化建议。

好久没有检测过万事屋的SSL了,那就刚好点开来再测试下。

检测之前早已做好结果肯定在A之下的心理准备,果然,跑完所有检测流程后显示结果是B。

看来时代变了,又要根据新的最佳实践来调整配置文件了。(2年前测试的时候好像还是A+的说⊙﹏⊙∥

总之,就按照检测报告里面的注意项来修改一下吧。

1.环境检查

先梳理一遍万事屋VPS的软件环境。这里用的Web服务器是Nginx,因此分别用nginx -vopenssl version查看Nginx和OpenSSL的版本。

其实不看也知道肯定是当前的稳定版本,因为3个月前刚把系统更新过,之后也有(偶尔)打补丁。

2.Nginx配置文件优化

既然要改配置文件,那就按照惯例先把在用的做个备份再操作吧。

2.1.移除TLS 1.1支持

SSL Labs的检测报告中明确提及了,由于网站支持TLS 1.1,所以评分上限只会是B(原话:This server supports TLS 1.1. Grade capped to B.)。

TLS 1.1在当前(2021年12月)来看,确实是一个不够安全的协议。各个现代浏览器其实在去年就已经停止了对TLS 1.1的支持。

所以是时候在服务端也禁用TLS 1.1了。

编辑Nginx的配置文件,把ssl_protocols一行的TLSv1.1去掉,留下以下内容:

ssl_protocols TLSv1.2 TLSv1.3;

其实激进一点把TLSv1.2去掉也不是不可以,但那样的话就要求必须使用较新的(至少是今年版本的)现代浏览器。依旧在用Firefox 52.9 ESR的友人们就没法访问了(笑)。

2.2.移除弱加密算法

检测报告里面有提及到,网站提供的部分TLS 1.2加密算法已经不够安全。

那么把不安全的移除掉就是了。

收藏夹里面也有个TLS强加密算法推荐的网站(https://cipherlist.eu/),根据这个网站上的建议改了下Nginx配置文件里面的ssl_ciphers一行,换成以下内容。

ssl_ciphers EECDH+AESGCM:EDH+AESGCM;

2.3.检查HSTS支持

其实HSTS我之前已经开了,看一下配置文件里面有这1行就OK。

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

2.4.重载Nginx配置文件

全部搞定后保存配置文件,先用nginx -t命令测试一遍,没问题就sudo nginx -s reload重载。

再跑一遍评分,一转A+。

3.添加DNS CAA记录

检测结果提示域名没有配置DNS CAA记录。虽然CAA有没有配置不影响评分,但是既然有提及,那么就顺便在DNS解析里面加一下吧。

当前基本所有主流的域名服务商都支持添加CAA记录,我在用的那个服务商当然也有支持。

稍微看了下CAA记录的写法,最终还是决定用SSLMate(https://sslmate.com/caa/)自动生成。

解析添加完毕后过几分钟再进行一次SSL检测,这次就显示存在CAA记录了。

4.个人吐槽

经过上面的一番调整,网站的SSL安全性似乎提高了,不过兼容性肯定不如以前。

就现实的角度来看,应该不会有人还用最高只支持TLS 1.1的浏览器来访问万事屋,因此这些更改不会影响到网站的正常访问,大概。

反正备份都在,要是真的出了什么问题,回滚就是。