Java客户端无法通过HTTPS使用SSL访问Web服务

时间:2011-04-08 17:02:49

标签: java ssl https

我们在Web上运行一个简单的Web应用程序,使用SSL通过https保护WebLogic。服务器的名称是dev-service1。使用带https的浏览器访问Web应用程序工作正常,但是,对于独立的Java客户端,我们收到以下错误,指示在client.jks文件中找不到“dev-service1”。

com.sun.xml.internal.ws.client.ClientTransportException:
HTTP transport error: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException:
No name matching dev-service1 found
   at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:121)

我们是否必须使用Java的keytool从server.jks文件中导出新的client.jks文件?

1 个答案:

答案 0 :(得分:2)

您需要将自签名证书从服务器添加到客户端信任库中。

我建议使用可在onetwo个地方找到的InstallCert程序。

快速记录。我很确定上述程序不会将证书从服务器添加到java附带的默认信任库中。因此,您必须在命令行中设置用于启动客户端的-Djavax.net.ssl.trustStore和-Djavax.net.ssl.trustStorePassword VM Arguments。