繁体   English   中英

SOAP Java客户端HTTPS / SSL

[英]SOAP java client HTTPS/SSL

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

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

我安装了证书myserver.der:

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

然后,使用wsimport生成存根。

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

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

感谢帮助

浏览此链接以了解不同证书格式之间的区别- 不同证书格式

您可以在此处通过此链接- 具有证书认证的Java SOAP客户端

创建如下的密钥库:

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:另外,通过此链接可以帮助您解决所需的代理身份验证错误-Java中的代理身份验证

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM