我们正在使用google的recaptch,在导入相应的证书(使用java应用程序)之后,仍然存在错误: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我们使用的是jdkèu1.7.51和tomcat8。
我们列出了证书,可以看出证书是存在和有效的,即使这样,我们仍然有前面提到的例外:
别名:google.com创建日期:2017年8月7日条目类型:trustedcertentry
所有者:cn=www.google.com,o=google inc,l=mountain view,st=california,c=us发卡机构:c=de,cn=axa-de-proxy-issuing-ca17,ou=if ndsg,o=axa technology services germany gmbh序列号:D21265BF38C9FAF8D615FBBF840AAA1FC6959DC5BFF60A48F77E355FA2EAC07BCCB6C6D
有效期:2017年7月12日星期三14:25:22至:2017年10月4日星期三13:57:00
证书指纹:md5:52:73:92:40:38:df:ab:2b:ed:5b:19:10:00:1d:57:7c sha1:76:f8:dc:99:cd:07:f8:81:4f:e5:48:c3:f4:4f:71:46:24:ce:f3:54 sha256:9b:72:1f:69:85:4c:ad:20:39:16:d4:7a:12:62:0d:8b:03:ec:8b:2f:e8:fd:40:fa:2e:f3:6a:1f:34:59签名算法名称:sha256withrsa版本:3
有人能帮帮我吗?
1条答案
按热度按时间oxcyiej71#
您的客户机位于防火墙后面,并通过一个代理执行https请求,该代理为所联系的站点动态生成ssl证书,以便在所交换的数据上执行eavsdrop。您可以通过正在检查的“谷歌证书”的颁发者看到:
java有自己的根ca密钥库,标准的证书检查在这里寻找受信任的根ca,而eavsdropper的根证书显然不在这里。
为了消除这个错误并让java客户机错误地假设证书由可信ca签名,您需要将cas根证书添加到java的根密钥库中。另一种解决方案是使用您自己的trustmanager建立ssl连接。您可以使用自己的sslcontext设置信任和密钥管理器。
前者需要在每个java安装中完成,后者在应用程序中工作。