"PKIX path building failed"的问题分析_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > "PKIX path building failed"的问题分析

"PKIX path building failed"的问题分析

 2015/3/25 21:16:37  DavisWang  程序员俱乐部  我要评论(0)
  • 摘要:在通过java程序访问https服务时常常会遇到下面的异常Causedby:sun.security.validator.ValidatorException:PKIXpathbuildingfailed:sun.security.provider.certpath.SunCertPathBuilderException:unabletofindvalidcertificationpathtorequestedtarget原因分析:此异常是由于jre不能验证服务端的证书所致
  • 标签:failed 问题 分析

????? 在通过java程序访问https服务时常常会遇到下面的异常 Caused by: sun.security.validator.Va lidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

???? 原因分析:

??? ?此异常是由于jre不能验证服务端的证书所致,归其原因有下面两种可能:

???? 1)服务端使用的是自签名证书或证书签发机构不是公认的权威机构。这种情况由于在\jre\lib\security\cacerts中找不到CA证书所以不能验证服务器返回证书的真实性。注通过命令 keytool -list -keystore cacerts 可查看cacerts中的可信CA。

???? 2)服务端使用的证书缺少中间证书即证书链不完整。这种情况通过浏览器访问一般是正常的,因为大部分浏览器会自动从证书签发机构下载中间证书,这样就可以补齐证书链,而java的security库并不会完成中间证书的下载,所以不能验证服务器返回证书的真实性。

??? 3)还有一种可能就是人为失误,服务器证书与中间证书或CA证书不匹配。这个只能是排除上面两种可能后本地验证证书链是否正确。

?????解决方法

???? 对于第一种情况需要把自签名的证书或缺少的CA证书导入到cacerts;对于第二种情况需要在服务端补齐证书链,具体操作方法参见:

???? 在nginx上配置证书链 https://scottlinux.com/2013/09/02/how-to-configure-ssl-certificate-chain-for-nginx/

???? 在F5上配置证书链 http://www.entrust.net/knowledge-base/technote.cfm?tn=8268?

发表评论
用户名: 匿名