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 生成了存根。
在调用网络服务之前,我的客户是这样做的:
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
感谢帮助
通过此 link 了解不同证书格式之间的区别 - Different Certificate Formats
您可以在此处查看此 link - 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:此外,通过此 link 可能会帮助您解决需要代理身份验证错误 - Proxy authentication in Java
我试图通过 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
感谢帮助
通过此 link 了解不同证书格式之间的区别 - Different Certificate Formats
您可以在此处查看此 link - 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:此外,通过此 link 可能会帮助您解决需要代理身份验证错误 - Proxy authentication in Java