gpt4 book ai didi

tomcat - fatal error sun.security.validator PKIX 路径构建失败

转载 作者:行者123 更新时间:2023-11-28 22:35:55 25 4
gpt4 key购买 nike

我之前遇到过这个问题,并通过更新我的 JDK 解决了这个问题。早些时候,当我遇到这个问题时,我使用的是使用 Yum 进行的默认安装,后来我从 oracle 下载 JDK 并安装它,并根据新的安装目录更改了默认的 $JAVA_HOME 路径。现在再次出现同样的问题,我检查了 related post on the net无法找到任何修复。

我们使用的示例代码只是通过 http 或 https 进行的简单例份验证。

//Http client object
HttpClient client = new HttpClient();
HostConfiguration config = client.getHostConfiguration();
client.getParams().setParameter("http.socket.timeout", new Integer(100000));


String Url = 'https://example.com/';
PostMethod method = new PostMethod(Url);

//Handler to try for 3 attempt in case of network failure
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));

//Here we are trying to connect through Httpclient method
int statusCode = client.executeMethod(method);

不确定是什么导致了这个问题。

    keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 76 entries

2013 年 2 月 11 日编辑

我做了更多测试并重新安装了我的 jdk 和 tomcat,但仍然出现相同的错误。

Failure-Fatal transport error:
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

我按照 URL 上给出的说明进行操作:

java InstallCert services.example.com
Loading KeyStore jssecacerts...
Opening connection to services.example.com:443...
Starting SSL handshake...

No errors, certificate is already trusted

Server sent 1 certificate(s):

1 Subject CN=*.example.com, OU=Domain Control Validated, O=*.example.com
Issuer SERIALNUMBER=04343339, CN=Go Daddy Secure Certification Authority, OU=http://certificates.godaddy.com/repository, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US

这表明证书已经添加到 cacerts。现在这变得越来越有趣了。

最佳答案

成员的所有麻烦和帮助之后,我终于解决了这个问题。我正在提供我的答案,以防将来有人遇到同样的问题。

服务器 services.example.com 使用通配符证书(在我的例子中)并且它在 SSL 握手期间没有发送完整的证书(根据我的最佳理解),这导致了这个问题。

要解决此类问题,我们需要将证书添加到 java 信任库“cacerts”。

1: 我从 URL http://nodsw.com/blog/leeland/2006/12/06-no-more-unable-find-valid-certification-path-requested-target 下载了一个 java 代码我将此文件放在服务器上的“$JAVA_HOME/jre/lib/security/cacerts”位置

2:我使用“javac InstallCerts.java”编译了代码,它创建了一个类文件。

3: 然后执行以下命令为服务器“services.example.com”添加证书

java InstallCert services.example.com

Enter certificate to add to trusted keystore or 'q' to quit: [1]
1

我输入“1”以将证书添加到信任存储文件“jssecacerts”。

4:最后我用文件“jssecacerts”替换了文件“cacerts”。 (注意:替换前请备份两个文件)

mv cacerts cacerts-bkp-12-Feb-2013
cp –p jssecacerts cacerts

5:确认证书已经添加到cacerts文件中。要确认它,请执行以下命令:

keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts | grep example
Enter keystore password:

services.example.com-1, Feb 12, 2013, trustedCertEntry,

6:重启相关服务并测试,问题已解决。

关于tomcat - fatal error sun.security.validator PKIX 路径构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14620500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com