【问题标题】:SOAP java client HTTPS/SSLSOAP Java 客户端 HTTPS/SSL
【发布时间】:2016-02-21 19:32:43
【问题描述】:

我试图通过 https 调用 Web 服务,管理员向我发送了我的服务器的 WSDL 文件和证书:

myserver.der
myserver.p7b 
myserver.pem
myserver-bundle.pem

我安装了证书 myserver.der :

keytool -import -trustcacerts -alias myserver -file myserver.der

然后,我使用 wsimport 生成了存根。

在调用网络服务之前,我的客户正在这样做:

String javaHomePath = System.getProperty("java.home");
String keystore = javaHomePath + "\\lib\\security\\cacerts";
String storepass= "changeit";
String storetype= "JKS";

String[][] props = {
      { "javax.net.ssl.trustStore", keystore, },
      { "javax.net.ssl.keyStore", keystore, },
      { "javax.net.ssl.keyStorePassword", storepass, },
      { "javax.net.ssl.keyStoreType", storetype, },
    };
    for (int i = 0; i < props.length; i++)
      System.getProperties().setProperty(props[i][0], props[i][1]);

问题:

1) 我不知道如何处理其他文件 (.p7b ; .pem)?

2) 握手似乎有效,但我收到此错误:

 com.sun.xml.internal.ws.client.ClientTransportException: The server sent    HTTP status code 407: Proxy Authentication Required

感谢您的帮助

【问题讨论】:

  • 使用 jdk1.8.0_25,当我运行 keytool -help 时,我没有看到 -import 作为选项。我试过:keytool -importcert -trustcacerts -alias myserver -file myserver.crt,这似乎奏效了。看起来 keytool 仍然可以识别 -import 选项,因为 keytool -import 没有引发错误。
  • 请注意,通过在 Windows 7 中运行此命令,密钥已保存在 C:\Users\USERNAME\.keystore 中

标签: java soap https soap-client


【解决方案1】:

通过此链接了解不同证书格式之间的区别-Different Certificate Formats

您可以通过这里链接 - Java SOAP client with certificate authentication

像这样创建密钥库:

keytool -import -trustcacerts -file myserver.p7b -keystore keystore -storepass <mypasswd> -alias "myalias"

注意 myalias 必须与生成密钥时使用的相同。

您还可以验证密钥库是否有证书

keytool -list -v -keystore keystore.jks

要调试ssl握手过程并查看证书,设置VM参数-Djavax.net.debug=all

PS:另外,通过此链接可能会帮助您解决需要代理身份验证的错误 - Proxy authentication in Java

【讨论】:

  • 我必须将其中一个文件(.der ; .p7b ; .pem ; bundle.pem)添加到 client.jks 和 cacerts.jks 吗?
  • @user986586,您是如何创建密钥库的? keytool -import -trustcacerts -file myserver.p7b -keystore keystore -storepass &lt;mypasswd&gt; -alias "myalias"。还可以尝试保持存储密码和私钥密码相同,以尝试是否可行。
  • 我无法安装 .p7b,我收到此错误:java.lang.Exception: The entry it's not an X.509 certificat
猜你喜欢
  • 2010-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
相关资源
最近更新 更多