gpt4 book ai didi

https - 如何在 Axis2 Java 客户端中使用自签名证书?

转载 作者:行者123 更新时间:2023-12-01 09:08:51 25 4
gpt4 key购买 nike

我使用 org.codehaus.mojo axistools-maven-plugin 插件版本 1.4 生成了代码。我正在尝试通过 https 连接到 Web 服务。我已将服务器证书安装到 jssecacerts 并将此 keystore 复制到 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/ 文件夹中。所以这意味着我在客户端 keystore 中有服务器证书。我还将服务器私钥和证书导入到 kestore.ImportKey keystore 中。我想我将不得不将其用作信任库。现在,如何在 Java 客户端中将所有这些连接在一起?我在客户端使用自动生成的 stub 。我尝试使用以下但不起作用。

System.setProperty("javax.net.ssl.trustStore","certs/keystore.ImportKey");
System.setProperty("javax.net.ssl.trustStorePassword", "importkey");

我遇到以下异常。

faultString: 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

这些证书是有效的,因为我通过 HTTPS 客户端为同一主机使用相同的证书。此外,我能够看到使用相同证书的成功 curl 请求。实际上,我不确定如何使用自签名服务器证书通过 https 编写 Axis2 soap Java 客户端。谁能指出我一步一步的例子。

最佳答案

在客户端,您不需要证书私钥来信任服务器。由于您在问题中写道您在 keystore.ImportKey 中导入了证书和 key ,我认为它们已作为 PrivateKeyEntry 导入(您可以使用 keytool 进行验证 keystore 中条目的类型)。

但是,如果您想将证书用作信任 anchor ,则应将证书作为 TrustedCertificateEntry 导入。可以用keytool来实现:

keytool -importcert -trustcacerts -alias myTrustAnchor -file /path/to/cert.crt -keystore /path/to/keystore

然后您可以在您的应用程序中配置信任库:

System.setProperty("javax.net.ssl.trustStore","/path/to/keystore");

关于https - 如何在 Axis2 Java 客户端中使用自签名证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474966/

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