HTTPS中证书链不完整的解决方案

问题

tomcat8.5配置pfx格式ssl证书后,https可以正常访问,但是(问题与下面这个情况相同):

反馈缺少中间证书:

关于SSL证书

看了下面这些介绍差不多能有个大体的认识,想完全理解还需要多下功夫

其中CRT与CER可以理解成相同的格式,一个用于Linux,一个用于Windows.

中间证书

证书链Certificate Chain与中间证书指的应该是同一个东西

解决方案

问题的原因是没有配置中间证书,那解决方案自然是加上中间证书

获取中间证书

有的证书服务商没给中间证书,没关系,我们可以从crt证书文件中解析出来 当然也可以线下利用ssl工具或者openssl命令等自己解析,方法自行百度

添加中间证书

从SSL证书服务商那里,获得的crt证书文件大概是这个样子的:

-----BEGIN CERTIFICATE-----
    # 证书内容
-----END CERTIFICATE-----

在你加上中级证书后,新的crt证书文件看起来是这样的:

-----BEGIN CERTIFICATE-----
    # 证书内容 1
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
    # 证书内容 2
-----END CERTIFICATE-----

然后再用这个新的证书和key文件转化出pfx格式证书就OK了

Tomcat配置

<Connector 
port="443" 
protocol="org.apache.coyote.http11.Http11Protocol" 
maxThreads="200" 
scheme="https" 
secure="true" 
SSLEnabled="true" 
clientAuth="false" 
sslProtocol="TLS" 
keystoreFile="d:/server.pfx" 
keystoreType="pfx" 
keystorePass="密码"
 />
经验分享 程序员 微信小程序 职场和发展