gpt4 book ai didi

java - 使用 Java 创建与服务器的可信 ssl 握手

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:30 25 4
gpt4 key购买 nike

我需要帮助使用 Axis2 和 org.jsslutils.sslcontext.X509SSLContextFactory 创建与 Web 服务的可信连接。我从 Web 服务的管理控制台 (client.p12) 生成了一个客户端证书。我还通过转到端点 uri 并使用浏览器 (pubserver.cer) 将其导出到文件来获取服务器的公共(public)证书。我使用 keytool (mywsks.jks) 将 client.p12 转换为 jks。我还将 pubserver.cer 导入到 keystore 中。我对 ssl 很陌生。我是否需要将这些证书导入到 .../jre/lib/security/cacert 或 cacerts 或 trusted.libraries 中,或者我可以只引用 mywsks.jks 吗?如何使用 X509SSLContextFactory 为服务器设置我的代码以信任我?它似乎需要一个 keyStore 和一个 trustStore,我从这个例子中得到:

X509SSLContextFactory sslContextFactory = new X509SSLContextFactory( 
keyStore, keyStorePassword, trustStore);

我目前正在使用它来创建 keyStore 和 trustStore:

KeyStore keyStore = KeyStore.getInstance("JKS");     
String keyStoreFile = "mywsks.jks";
InputStream keyInput = new FileInputStream(keyStoreFile);
String keyStorePassword = "thepassword";
keyStore.load(keyInput, keyStorePassword.toCharArray());
keyInput.close();

String trustStoreFile = "/path/to/cacert";
KeyStore trustStore = KeyStore.getInstance("JKS");
keyInput = new FileInputStream(trustStoreFile);
String trustStorePassword = "thepassword";
trustStore.load(keyInput, trustStorePassword.toCharArray());
keyInput.close();

我收到以下错误:

org.apache.axis2.AxisFault: sun.security.validator.ValidatorException: No trusted certificate found

最佳答案

  1. 将用于身份验证的客户端证书添加到 keyStore(client.p12) 中。
  2. 将服务器的公钥 (pubserver.cer) 添加到您的信任库中。它可以是/jre/lib/security/cacert

您可以发布您面临的问题吗?因为在我看来,这是一个令人困惑的大话题。

这个例子将帮助你实现这个..

http://code.google.com/p/jsslutils/wiki/ApacheHttpClientUsage

最后你可以建立一个 URL 连接..

关于java - 使用 Java 创建与服务器的可信 ssl 握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612149/

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