gpt4 book ai didi

java - 2 路 SSL::SSL 握手失败错误

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:33 27 4
gpt4 key购买 nike

我已经创建了一个带有证书的信任库和带有私钥的 keystore 。我已经放置了以下代码,加载了 trsustore 管理器和 keystore 管理器,然后创建了 SSL 上下文的实例。

每当我向网络服务发出请求时,都会调用下面的代码。我们正在使用 axis2 API。

SSLContext context = SSLContext.getInstance(protocolVersion); 
context.init(keyManagers, trustManagers, null);

SSLSocketFactory socketFactory = context.getSocketFactory();

SslContextedSecureProtocolSocketFactory secureProtocolSocketFactory = new SslContextedSecureProtocolSocketFactory(context);

Protocol authhttps = new Protocol("https", secureProtocolSocketFactory, port);
HttpClient httpclient = new HttpClient();
httpclient.getHostConfiguration().setHost(hostname, port, authhttps);
GetMethod httpget = new GetMethod("/RTAPService/RTAPService");

也试过这个 GetMethod httpget = new GetMethod("/");

httpclient.executeMethod(httpget);

它给我下面的错误..

org.apache.axis2.AxisFault: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

主机名是“qartap.csnet.assurity.sg”,我的网络服务 URL 是“https://qartap.csnet.assurity.sg:8443/RTAPService/RTAPService

问题是当我注册我的“HTTPS”协议(protocol)时,它会影响我的整个应用程序,我能否以某种方式仅针对特定主机或特定 Web 服务设置这些...???

要么我想使用主机名设置它,要么自己创建新协议(protocol)...我尝试了解决方案 here 中给出的方法.但它给了我以下异常..

在将 web 服务 URl 传递给生成的 stub 构造函数时,我将 url 中的“HTTPS”替换为我自己定制的“myHTTPS”。

The system cannot infer the transport information from the myhttps://serverUrl:7001/app/services/RTAPDevService.RTAPDevServiceHttpSoap12Endpoint/ URL.

最佳答案

通过将证书添加到 cacerts 文件并将其指向 weblogic 来解决同样的问题。最初证书链未正确导入到 cacerts 文件中。还有一些关于证书导入的问题。

可以引用以下链接

http://ankursinghal86.blogspot.in/2014/06/authentication-with-client-certificate.html

关于java - 2 路 SSL::SSL 握手失败错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10053898/

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