SSL Certification 问题----PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target;
问题背景:
基于AKS Nginx 部署的应用 和KeyVault存储的SSL 证书到期后需要更换新证书。更换后UI访问应用正常,java api对接报错:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target;
第一直觉是证书有问题,但证书提供方说其它有使用相同证书的应用都正常。于是网上搜索相同的问题,得到的情况是证书不信任需要再java/lib/security 下导出证书。经过尝试以后确实能解决应用作为客户端时的问题。但如果是作为对接时的server 端,对接方还是会报错无法彻底解决问题。所以这个不是根本方式,根本应该还是要从证书源头解决。
使用OpenSSL 查看证书(以博客园为例):
执行 openssl s_client -connect i.cnblogs.com:443 -showcerts

一般缺少中间证书的时候就会报上述错误,所以需要将根证书、中间证书、自身证书合并生成签名证书就不会有信任问题了(前提是签发证书机构是正规证书机构)。
执行合并三个证书对应的pem cat a.pem b.pem c.pem > chain.pem
使用openssl 生成pfx文件:openssl pkcs12 -export -in chain.pem -inkey havi.key(pem 对应的key -out chain.pfx -passout pass:1234
经新生成的 chain.pfx上传Keyvault 并触发证书更新即可
浙公网安备 33010602011771号