证书链不完整所表现出的问题
在Chrome中完全正常的https页面,在微信(WebView)中表现有一定概率无法打开页面,无论是IOS还是Android,要么就是一片白,要么就是直接无法打开,要么提示证书不正确。
造成以上问题的原因就是证书链不完整,需要在服务器上配置完整的SSL证书链。
如何检测证书链是否完整
因问题的触发有一定概率,并不太容易通过参与项目人员的手机进行测试从而发现问题。此时可以借助在线检测工具。
SSL服务器证书安装检查器
当检测结果包含以下内容,则表示缺少中间证书,证书链不完整。
获取中间证书
PS: 1.有些服务商提供pem证书,pem证书包含中间证书,可用于替换crt证书,就不用再执行下面的步骤了 2.有些服务商提供的Nginx证书的crt证书中就包含了中间证书,可直接使用
1、从crt证书文件中解析出来
使用在线工具:获取证书信息及下载中间证书(当然也可以线下利用ssl工具或者openssl命令解析,方法自行百度,此处不在说明)
2、生成含有中间证书的新证书
将原始crt证书文件内容与在线工具生成的中间证书文件内容,复制粘贴到一起保存为.pem文件或.crt即可。
代码语言:javascript复制—–BEGIN CERTIFICATE—–
# CRT 证书内容
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
# 中间证书内容
—–END CERTIFICATE—–
3、将保存新的pem或crt文件进行部署
通过部署含有中间证书的新证书及key证书重新部署后,即可解决证书链不完整的问题。