weblogic中的主机名验证

时间:2014-12-01 12:35:38

标签: java ssl certificate weblogic hostname

我试图在Weblogic Server中运行我的Web服务客户端时遇到以下错误,尝试了在各个站点中建议的各种选项

从aa.aa.abc.com收到的证书链 - 123.158.127.108主机名验证检查失败。证书包含abc.com但检查预期aa.aa.abc.com

  1. 一种选择是使用以下选项来禁止主机名验证, 这不是首选方案。

    -Dweblogic.security.SSL.ignoreHostnameVerification = true

  2. 尝试通过weblogic Console" weblogic.security.utils.SSLWLSWildcardHostnameVerifier"设置自定义主机名验证程序,仍然出现相同的错误

  3. 尝试通过编写虚拟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"。

  4. 我想知道有没有更好的方法以编程/动态方式进行操作,以免对其他应用程序产生任何影响?

1 个答案:

答案 0 :(得分:1)

我记得也得到同样的错误。通过以下代码片段得到它试试这个。

     url = new URL(urlStr);

     HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();

            conn.setHostnameVerifier(new HostnameVerifier()  
            {        
                public boolean verify(String hostname, SSLSession session)  
                {  
                    return true;  
                }  
            });