近期客户使用CFCA证书时,Java会抛异常: PKIX path building failed,其原因是JDK默认没有将CFCA的根证书置到Java的信任列表里。
这里使用keytool
将CFCA证书添加到jdk的cacerts中。
检查JDK的信任列表中是否包含CFCA的根证书
首先找到jre的安装位置,以及cacerts的路径,我这里的路径是:
1 |
|
注:如果jdk为软连接的话,则在后边添加一个目录标识/
即可
使用keytool命令检查cacerts里是否包含CFCA根证书,keytool命令位于jdk/bin/keytool
及jdk/jre/bin/keytool
路径,两个命令是一样的。
1 |
|
可以看到我的环境中,jdk的cacerts是没有包含CFCA 根证书的。
上传CFCA根证书
将CFCA根证书上传到服务器上,也可以使用下边的命令直接生成:
1 |
|
置入CFCA根证书到信任链
使用keytool将证书置入到cacert中,keystore的密码为: changeit
,是否信任输入y
:
1 |
|
再次检查
1 |
|
其他
一键添加CFCA根证书到cacerts的脚本:
Reference:Java的异常信息如下:
1 |
|