JAVA-将主机名验证程序添加到由wsimport生成的Soap客户端中(修复SSL证书错误中的公用名不匹配)

时间:2018-10-15 08:34:04

标签: java ssl soap jax-ws wsimport

在调用Soap Web服务时出现以下异常;

https URL主机名与客户端信任库中服务器证书上的公用名(CN)不匹配。确保服务器证书正确,或者要禁用此检查(不建议用于生产),请将CXF客户端TLS配置属性“ disableCNCheck”设置为true。

这是因为soap终结点URL具有IP地址而不是SSL证书中的域名。在我的其他Java应用程序中,我通常使用以下代码解决此问题;

 HostnameVerifier {
@Override
public boolean verify(String hostName,
    SSLSession session) {
  return hostName.equals("serverIP");
}

但是对于这种情况,我使用Netbeans中的 WSIMPORT 工具创建了客户端,但是我不知道如何注入主机名验证程序代码。我曾尝试使用sun内部API(尽管不推荐),例如((BindingProvider) port).getRequestContext().put(com.sun.xml.internal.ws.transport.https.client.hostname.verifier, new HostNameVerifierClass()); ,但这也不起作用。 我该如何解决?

0 个答案:

没有答案