问题

最近有人反馈在他们的域名在MySSL检测报告中出现:
middle_certificate
很疑惑为什么只是证书链不完整就会降级到B。那在这里简单的说明一下:

浏览器的处理

现代的浏览器都有证书自动下载的功能,但很多浏览器在安装后是使用系统内置的证书库,如果你缺失的那张CA证书,在系统的内置证书库中不存在的话,用户第一次访问网站时会显示如下情况:(以Chrome为例)
chrome_untrust
即使你的证书确实是可信的,但依旧会显示成不可信,只有等到浏览器自动把缺失的那张CA证书从网上下载下来之后,访问该网站才会显示成可信状态。

硬件设备的处理

大量的硬件设备并不会像浏览器一样下载CA证书,如果你缺失的CA证书不再这些硬件设备的内置证书库中,那么使用这些硬件设备访问网站就会一直显示你的域名是不可信状态。

修复

其实修复的办法很简单,就是在部署证书的时候,把那张缺失的CA证书一并部署。目前一般的证书签发机构在签发证书的时候会把该CA证书一并打包。但如果确实缺失了这张CA证书也不要慌,MySSL能够帮你补全证书链。

使用单独的补全工具

证书补全工具传送门
tool_for_chain-1
该工具支持输入域名和上传证书,如果使用输入域名(支持非443端口)的方式,并且您的域名使用双证书策略,修复结果就会如图所示,该工具会对双证书对进行补全(如果双证书都存在缺链的情况)。

MySSL检测工具

MySSL检测报告中暗含着证书链补全的功能:
myssl_for_chain
只要点击下载证书链,会跳转到证书下载页面。
但有一点需要注意:如果您的网站部署了双证书:
multiple_certs
下面的下载证书链对应的是上选中证书(蓝色选项卡)的证书链,千万不要下错证书哦。