2

我使用这个工作正常的客户端连接到一个 Web 服务:

WSCSI WSCS = new WSCSI("http://localhost:8080/ServiceV2/services/WSCSISoap?wsdl","WSCSI","WSCSISoap");
IScoring instance = new ScoringCFA(WSCS);

assertEquals(true, instance.statusService());

我需要使用 SSL,所以我将 url 更改为: https://localhost:8181/ServiceV2/services/WSCSISoap?wsdl

并将其添加到 VM 选项中:

-Djavax.net.ssl.trustStore="C:\cacerts.jks"

('Keytool -list -keystore "C:\cacerts.jks',当我运行这个命令时,我看到我需要的证书在那里)

当我运行客户端得到这个错误:

java.security.cert.CertificateException: No name matching localhost found.)
4

2 回答 2

2

这可能是因为您使用的证书是针对特定主机名 (www.myhost.com) 颁发的。尝试本文中的解决方案。
但请注意,代码示例仅用于本地主机测试,一旦您在适当的服务器上进行集成/组装测试,请将其删除。

于 2011-02-09T19:49:27.693 回答
0

在我看来,禁用 SSL 主机名验证可能对您有用。另一个例子在这里

于 2011-02-09T19:48:11.403 回答