无法找到请求目标的有效证书路径(sun.security.provider.certpath.SunCertPathBuilderException: )

Posted

技术标签:

【中文标题】无法找到请求目标的有效证书路径(sun.security.provider.certpath.SunCertPathBuilderException: )【英文标题】:unable to find valid certification path to requested target(sun.security.provider.certpath.SunCertPathBuilderException: ) 【发布时间】:2013-12-23 05:59:07 【问题描述】:

我有一个部署在 worklight V6.0 上的 worklight 应用程序,尝试访问 LDAP 服务器进行身份验证...并尝试为应用程序启用 https。

我遇到了例外情况。

javax.naming.CommunicationException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径

[根异常是 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径];剩下的名字 'ou=bluepages,o=ibm.com'

引起:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径

原因:sun.security.provider.certpath.SunCertPathBuilderException: 无法找到请求目标的有效认证路径

请提出建议。

谢谢

【问题讨论】:

【参考方案1】:

看起来 LDAP 服务器由自签名密钥保护,而 worklight 密钥库没有其公共证书。 检查 worklight.properties 文件中“ssl.keystore.*”定义的密钥库,如果需要,将 LDAP 证书导入密钥库。

【讨论】:

对不起,不是这个密钥库,它是用于适配器后端连接的。您需要检查运行 worklight 的机器上的默认 java keystore 或 OS kestore。 感谢您的回复和更新。管理员通过将证书导入密钥库解决了问题。【参考方案2】:

对我有用的解决方案:

使用keytool 命令在正确的jre 文件夹中安装证书。我的 Eclipse 使用 jre 执行,之前我将证书安装在 jdk 文件夹中。

keytool -import -trustcacerts -keystore "C:\Program Files\Java\jre1.8.0_192\lib\security\cacerts" -storepass changeit -alias LDAPRoot -import -file "xxxxxxxx.cer

【讨论】:

以上是关于无法找到请求目标的有效证书路径(sun.security.provider.certpath.SunCertPathBuilderException: )的主要内容,如果未能解决你的问题,请参考以下文章

SSLHandshakeException:PKIX 路径构建失败 SunCertPathBuilderException:无法找到请求目标的有效证书路径

“PKIX 路径构建失败”和“无法找到请求目标的有效证书路径”

在 java 中验证证书会引发异常 - 无法找到请求目标的有效证书路径

Gradle 同步失败:无法找到请求目标的有效证书路径

“PKIX 路径构建失败:无法找到请求目标的有效证书路径”仅在发布版本中

javax.mail.MessagingException:PKIX 路径构建失败:SunCertPathBuilderException:无法找到请求目标的有效证书路径;