站点部署 HTTPS目前来看已经是大势所趋不可抵挡了,所以现在有很多博客网站都纷纷升级到 HTTPS,但是在部署 HTTPS 的时候,或多或少都可能会存在一些问题,那么我们就很有必要借助第三方平台(如myssl.com)来检测看看我们的评级是否达到 A+,PCI DSS 是否合规,ATS 是否合规等。今天我们重点来说一说 PCI DSS 不合规的问题。
PCI DSSPCI DSS,全称 Payment Card Industry Data Security Standard,第三方支付行业数据安全标准,是由 PCI 安全标准委员会制定,力在使国际上采用一致的数据安全措施。
早在去年 6 月 30 号 PCI 安全标准委员会官方发表博文将于2018 年 6 月 30 号(最晚)禁用早期 SSL/TLS,并实施更安全的加密协议(TLS v1.1 或更高版本,强烈建议使用 TLS v1.2)以满足 PCI 数据安全标准的要求,从而保护支付数据。如果你还没有设置好,那么接着往下看!
随着时间的临近,我们提前调整了 PCI DSS 合规判定标准(在原有的标准之上,支持 TLS v1.0 或更早的加密协议将会判定为不合规),方便您提前调整您的服务以避免违规的风险。
根据上面的介绍可知,从 2018 年 6 月 30 号起已经开始禁用早期 SSL/TLS,也就是禁用 TLSv1.0。换句话就是说如果站点还支持 TLSv1.0 加密协议的话就会被判定为 PCI DSS 不合规。
如下图所示:
现在网络上很多部署 HTTPS 的教程里面都还是用到 TLSv1.0 解密协议,一般给出的 ssl_protocols 配置都是类似下面的做法:
上述代码中的 TLSv1 其实就是 TLSv1.0,也就是说我们在配置 SSL 的时候如果还是用到 TLSv1 就会出现 PCI DSS 不合规。既然知道了问题所在,那么解决办法也就很简单了,直接在 SSL 配置中禁用 TLSv1.0,也就是直接删除 TLSv1,修改后的代码如下:
如果你的站点环境支持 TLSv1.3,那么可以修改为:
修改好 ssl_protocols 之后,记得重启一下 nginx(平滑重启 nginx 命令:
/usr/local/nginx/sbin/nginx -s reload),
然后到myssl.com重新检测,如果没有变化,点击右侧的“刷新报告”按钮刷新即可。如本站修改之后的检测报告如下:
如上图所示,本站把 SSL 配置中的 TLSv1 删除并重启 nginx 之后,PCI DSS 已经合规了。
如果你也是使用又拍云 CDN的话,记得到功能配置 >> HTTPS >> 往下拉找到“最低 TLS 版本”>> 点击『管理』按钮 >> 选择 TLSv1.1 并点击『确定』按钮。如下图所示:
如果是宝塔面板,就在配置文件里面修改。如图:
这样在服务器上直接配置禁用 TLSv1.0,在又拍云上选择最低 TLS 版本为 TLSv1.1,那么可以说是万无一失了,检测报告中 PCI DSS 肯定是合规的了。有空的话,建议各位博主站长也检测一下自己站点是否存在 PCI DSS 不合规的情况,如果存在就按本文的办法折腾一下就行。