无法使用https协议(ssl)访问Web服务

时间:2013-05-14 15:46:10

标签: java web-services ssl https webservices-client

我们最近通过https公开了一个网络服务。

当我们尝试使用JAX-WS客户端通过https连接到它时,它会抛出以下异常 com.sun.xml.ws.client.ClientTransportException:HTTP传输错误:java.net.ConnectException:连接被拒绝:连接 这通常意味着套接字连接存在一些问题。 当我们尝试使用webservice客户端调用webservice的某些操作时抛出异常。 对Web服务的http调用工作正常。

这里有趣的是,这个问题只发生在我们部署了Web服务并且第一次使用https协议进行访问操作时。 现在,一旦我们进行了一次http呼叫,那么即使https也开始工作了。

如果有人在此之前遇到过这类问题,请提供一些建议。

1 个答案:

答案 0 :(得分:1)

通常,您的Java客户端应该在可信密钥库中拥有ssl证书。

使用keytool进行证书管理: keytool -import -trustcacerts -keystore trastedCert -storepass traustedCertPassword -noprompt -alias trastedCert -file trastedCert.cer

您可以将可信证书添加到您的JVM(cacerts):

keytool -import -trustcacerts -keystore cacerts -storepass traustedCertPassword -noprompt -alias trastedCert -file trastedCert.cer

对于jBoss app服务器,我正在使用下一个JAVA_OPTS参数:

设置JAVA_OPTS =%JAVA_OPTS%-Djavax.net.ssl.trustStore =%PATH_TO_CERT%\ traustedCert -Djavax.net.ssl.trustStorePassword = traustedCertPassword