【发布时间】:2016-04-23 12:12:13
【问题描述】:
这是我遇到的例外情况
主机名“bla bla bla.com”与对等方提供的证书主题不匹配(CN=*.bla bla bla.com, OU=PositiveSSL Wildcard, OU=Domain Control Validated)
我已经看到了这个问题:
我按照它的建议做了,但是没有用。我已经看到了很多与该问题相关的问题,但它们都已被弃用。
这是我的代码:
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();
}
我怎样才能绕过这个证书? 这只是为了测试;这不是一个真正的生产环境。
【问题讨论】:
-
不应该是
new HttpGet("https://blablanla.com")吗? -
@TamasHegedus 实际上是这样,我只是隐藏了实际的域名。错字,现已更正
-
服务器回复了子域证书,请求
https://x.blablabla.com可能会有所帮助 -
@TamasHegedus 抱歉,我没有收到您的最后评论。你能再描述一下吗?
-
服务器回答的证书是通配符证书
*.blabla.com。该证书对blabla.com域无效,仅对它的子域有效。尝试向子域发送请求:new HttpGet("https://x.blahblahblah.com")
标签: java ssl httpclient