Java SSLException:证书中的主机名不匹配
我一直在使用以下代码连接到谷歌的服务之一。此代码在我的本地计算机上工作正常:
HttpClient client=new DefaultHttpClient();
HttpPost post = new HttpPost("https://www.google.com/accounts/ClientLogin");
post.setEntity(new UrlEncodedFormEntity(myData));
HttpResponse response = client.execute(post);
我将此代码放在生产环境中,该环境阻止了 Google.com。根据要求,他们允许我访问IP :74.125.236.52 - 这是Google的IP之一,从而允许与Google服务器进行通信。我编辑了我的主机文件以添加此条目。
我仍然无法访问URL,我想知道为什么。所以我用:
HttpPost post = new HttpPost("https://74.125.236.52/accounts/ClientLogin");
现在我得到一个这样的错误:
javax.net.ssl.SSL异常:证书中的主机名不匹配:<74.125.236.52>!= <www.google.com>
我想这是因为谷歌有多个IP。我不能要求网络管理员允许我访问所有这些IP - 我甚至可能无法获得整个列表。
我现在该怎么办?在 Java 级别是否有解决方法?还是完全掌握在网络人员手中?