我试图在Weblogic Server中运行我的Web服务客户端时遇到以下错误,尝试了在各个站点中建议的各种选项
从aa.aa.abc.com收到的证书链 - 123.158.127.108主机名验证检查失败。证书包含abc.com但检查预期aa.aa.abc.com
一种选择是使用以下选项来禁止主机名验证, 这不是首选方案。
-Dweblogic.security.SSL.ignoreHostnameVerification = true
尝试通过weblogic Console" weblogic.security.utils.SSLWLSWildcardHostnameVerifier"设置自定义主机名验证程序,仍然出现相同的错误
尝试通过编写虚拟HostName验证程序
,通过代码注册我的自定义主机名验证程序 requestCtx.put("com.sun.xml.internal.ws.transport.https.client.hostname.verifier", new HostnameVerifier() {
@Override
public boolean verify(String hostname,
SSLSession session) {
return true;
}
});
上面的代码没有帮助,因为weblogic似乎使用自己的Http处理程序而不是SUN J2SE实现,有些甚至建议使用" -DUseSunHttpHandler = true"。
我想知道有没有更好的方法以编程/动态方式进行操作,以免对其他应用程序产生任何影响?
答案 0 :(得分:1)
我记得也得到同样的错误。通过以下代码片段得到它试试这个。
url = new URL(urlStr);
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setHostnameVerifier(new HostnameVerifier()
{
public boolean verify(String hostname, SSLSession session)
{
return true;
}
});