我一直试图调试这个错误,但没有成功。
实际上,我是通过我的应用程序联系一个外部应用程序。连接建立良好,应用程序通过回调URL联系我的应用程序,然后我需要向外部应用发送最终验证。由于SSLHandShajeException,最后一步失败了。
sun.security.provider.certpath.SunCertPathBuilderException:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX路径构建失败:无法找到被请求目标的有效证书路径
我已经查看了可能的原因,并创建了一个包含外部应用程序证书的信任库,如下步骤所示:
browser
的信任库下载证书链
密钥工具-import -v -trustcacerts -alias mycert -file x_my_cert_location_x -keystore信任库
这并没有解决问题。
我还将cert添加到cacert文件中,并将其添加到server.xml文件中的连接器中,如下所示:
在SSL中调试,我可以看到:
> %% Invalidated: [Session-15, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
> http-nio-8080-exec-9, SEND TLSv1.2 ALERT: fatal, description =
> certificate_unknown http-nio-8080-exec-9, WRITE: TLSv1.2 Alert, length
> = 2 [Raw write]: length = 7 0000: 15 03 03 00 02 02 2E ....... http-nio-8080-exec-9, called closeSocket() http-nio-8080-exec-9,
> handling exception: 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这对我来说毫无意义。我的应用程序在java 1.8.242上。对此有什么建议吗?
发布于 2021-02-04 15:38:07
此错误表示您丢失了要访问的站点的证书。所以..。
-Djavax.net.debug=ALL启动java/tomcat。在日志中,您应该看到这样的行(我去掉了时间戳等等):trustStore is:{ you -cacerts trustStore } trustStore类型是: pkcs12 trustStore provider :上一次修改时间是: Tue Feb 02 18:29:33 GMT 2021 Reload信任存储重新分配信任重新加载的{x}信任证书添加为受信任证书({然后得到所有{x}证书的大转储)。
这样你就可以确定你的仙人掌是否真的被阅读了。--
https://stackoverflow.com/questions/60266993
复制相似问题