java主机名与证书

时间:2016-04-23 12:12:14

标签: java ssl httpclient

这是我有

的例外
  

主机名' bla bla bla.com'与对等方提供的证书主题不匹配(CN = * .bla bla bla.com,OU = PositiveSSL通配符,OU =域控制验证)

我已经看到了这个问题:

  

Ignoring SSL certificate in Apache HttpClient 4.3

我按照它的建议做了,但它没有奏效。我见过很多与问题相关的问题,但它们都被弃用了。

这是我的代码:

SSLContextBuilder builder = new SSLContextBuilder();
builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
SSLConnectionSocketFactory sslsf =
    new SSLConnectionSocketFactory(builder.build());
CloseableHttpClient httpclient =
    HttpClients.custom().setSSLSocketFactory(sslsf).build();
HttpGet httpGet = new HttpGet("https://b.blablabla.com");
CloseableHttpResponse response1 = httpclient.execute(httpGet);
try {
    System.out.println(response1.getStatusLine());
    HttpEntity entity1 = response1.getEntity();
    // do something useful with the response body
    // and ensure it is fully consumed
    EntityUtils.consume(entity1);
} finally {
    response1.close();
}

如何绕过此证书? 这仅用于测试;它不是真正的生产环境。

1 个答案:

答案 0 :(得分:0)

除了localhost,您可以将自己的自定义主机名添加到开发计算机。使用C:/windows/system32/etc/hosts在示例中添加主机名anjadavid.blablabla.com

现在打开浏览器并转到https://anjadavid.blablabla.com,错误消失。