HTTPS(全称:Hyper Text Transfer Protocol over Sec*ure Soc*ket Lay*er),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

Let's Encrypt,是2016年4月12日成立的一家证书授权中心,提供免费的传输层安全(TLS)X.509证书,通过自动化的过程消除目前安全网站证书需要手工创建,加密,签名,安装以及更新的复杂性。

https开启SSL给网站添加一把小绿锁 第5张插图

开启SSL

一直以来都觉得浏览器网址开头的那把小绿锁很别致啊,现在Let's Encrypt横空出世提供免费证书,说明https势在必行,那我也来动手给博客加把锁吧,看着就安全是吧。

现在给网站加上https添加开启SSL证书给网站添加一把小绿锁是很简单的事,网站后台、站长工具等都可以开启SSL。象宝塔面板给网站一键添加Let’s Encrypt免费https证书,省去复杂的技术操作,轻松加密网站。

https开启SSL给网站添加一把小绿锁 第6张插图

宝塔面板给网站一键添加Let’s Encrypt免费https证书

可能很多站长不管是使用了免费的还是收费的https证书,由于页面还存在http连接,导致浏览器的小锁是灰色和右小脚跟了一个黄色小三角。

看了很多解决方法,其中大部分是让站长把页面里包含http协议的连接都换成https就行了,但是有一个问题,本站的http链接是非常好解决的,如果我们站点里有友情链接是http的怎么办呢?

所以,把页面的http链接都换成https也是不对的。要想让https小灰锁变成安全的小绿锁其实非常简单,只需要在页面head里加入以下标签即可:

看一下是不是已经完美解决了?

https开启SSL给网站添加一把小绿锁 第7张插图

https小绿锁

但是小绿锁上面还有一个灰色的叹号是怎么回事?原因是使用的360安全浏览器。https开启SSL给网站添加一把小绿锁 第8张插图

该网站根证书不在360根证书计划内

Let's Encrypt 证书并未在 360 的这个根证书列表中,根据 360 浏览器根证书认证流程,估计是需要 Let's Encrypt 证书官方去申请才行。为了这个问题,早在今年 4 月中旬就有站长在 360 社区发帖说“为什么干这种阻碍互联网前进的蠢事? 人家 Let's Encrypt 为了更安全的互联网免费提供证书!!!就因为人家提供了免费的泛域名证书你们就开始抵制吗?请问互联网的精神何在?何况 360 自己都是倡导的免费!”可惜 360 官方没有给出什么有力的答复。对于这种事情,我们普通站长能做的要么忽略 360,要么更换证书。但是用360极速浏览器打开却完全没问题,搞不懂360。

部署完成然后到站长工具去检测一下,发现出现了一个新的问题。

https开启SSL给网站添加一把小绿锁 第9张插图

PCI-DSS不合规

PCI DSS,全称 Payment Card Industry Data Security Standard,第三方支付行业数据安全标准,是由 PCI 安全标准委员会制定,力在使国际上采用一致的数据安全措施。

早在x年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 不合规。

解决方法很简单,就是删除TLSv1 即可。

nginx将红框中的TLSv1删除

https开启SSL给网站添加一把小绿锁 第10张插图

nginx将红框中的TLSv1删除

apache 则是添加TLSv1到红框中

https开启SSL给网站添加一把小绿锁 第11张插图

apache添加TLSv1到红框中

然后重启nginx或apache,再去检测一下就发现全部合规了。