Web服务代理中的SSL证书问题

时间:2011-06-27 11:27:06

标签: java web-services xml-rpc rpc

我正在构建一个JAVA Web服务客户端,我在其中连接到一个服务。

此服务具有ssl证书验证。

如何使用ssl证书验证来调用此服务。

我在使用Eclipse构建的客户端中使用JAX-RPC实现。

一个例子是适当的。

3 个答案:

答案 0 :(得分:1)

我可以进行网络服务连接......

我使用以下命令添加了密钥库:

keytool -import -trustcacerts -file <file path/filename.cer> -alias <aliasName> -keystore <JAVA_HOME/jre/lib/security/cacerts> 

将密码设为“changeit”,并在密钥库中添加证书。

现在在代码中我添加了两行:

System.setProperty("javax.net.ssl.trustStore", "<JAVA_HOME>/jre/lib/security/cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

还添加了

_call.setUsername("username");
_call.setPassword("password"); 

其中_call是Call Class的调用对象。

它有效!!!!!!

答案 1 :(得分:0)

您需要做的就是使用以下命令行将服务器根证书注入JDK / JRE环境: -

keytool -importcerts -trustcacerts -file <path_to_root_cer_file> -alias <the_server_alias> -keystore <your_keystore>

默认[your_keystore]是

 1. <JDK_HOME>/jre/lib/security/cacerts
 2. <JRE_HOME>/lib/security/cacerts

默认密码为 changeit

当您致电网络服务时,只需提及

即可
"https://<host>:<SSL_port>/Path/To/Services"

我希望这可能有助于达到你的要求。

此致

Charlee Ch。

答案 2 :(得分:0)

您的意思是您的网络服务受“客户端证书”保护?如果是,请从服务提供商处获取.p12(PFX)或密钥库格式的证书,并在通话前使用以下系统属性进行设置:

javax.net.ssl.keyStore - 服务器上密钥库的路径

javax.net.ssl.keyStorePassword - 该密钥库的密码短语

javax.net.ssl.keyStoreType - 将其设置为“pkcs12”是提供给您的客户端证书.p12

如果您的应用程序只是一个Web服务提供者的客户端,请将这些属性设置为VM参数,否则,您可能需要为每个安全端点创建特定的SSLConnectionFactory。有关创建自定义SSL套接字工厂的详细信息,请参阅我对此post的回复。

相关问题