java主机名没有';与证书不符
这是我遇到的一个例外 主机名“bla bla bla.com”与对等方提供的证书主题不匹配(CN=*.bla bla bla.com,OU=PositiveSSL通配符,OU=Domain Control Validated) 我已经看到了这个问题: 我照它说的做了,但没用。我见过许多与这个问题有关的问题,但都不赞成 这是我的代码:java主机名没有';与证书不符,java,ssl,httpclient,Java,Ssl,Httpclient,这是我遇到的一个例外 主机名“bla bla bla.com”与对等方提供的证书主题不匹配(CN=*.bla bla bla.com,OU=PositiveSSL通配符,OU=Domain Control Validated) 我已经看到了这个问题: 我照它说的做了,但没用。我见过许多与这个问题有关的问题,但都不赞成 这是我的代码: SSLContextBuilder builder = new SSLContextBuilder(); builder.loadTrustMaterial(nu
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();
}
我怎样才能绕过这个证书问题这只是为了测试;这不是一个真正的生产环境。除了本地主机之外,您还可以将自己的自定义主机名添加到开发机器中。在示例中,使用
C:/windows/system32/etc/hosts
添加主机名anjadavid.blabla.com
现在打开浏览器,转到,错误消失。应该是
new-HttpGet(“https://blablanla.com“
?@TamasHegedus实际上是,我只是在隐藏实际的域名。输入错误,现已更正服务器以子域证书应答,请求https://x.blablabla.com
mayhelp@TamasHegedus对不起,我没有收到你最后的评论。您能详细描述一下吗?服务器应答的证书是通配符证书,*.blabla.com
。该证书对blabla.com
域无效,仅对其子域有效。尝试向子域发送请求:newhttpget(“https://x.blahblahblah.com“”