Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java主机名没有';与证书不符_Java_Ssl_Httpclient - Fatal编程技术网

java主机名没有';与证书不符

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

这是我遇到的一个例外

主机名“bla bla bla.com”与对等方提供的证书主题不匹配(CN=*.bla bla bla.com,OU=PositiveSSL通配符,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();
}

我怎样才能绕过这个证书问题这只是为了测试;这不是一个真正的生产环境。

除了本地主机之外,您还可以将自己的自定义主机名添加到开发机器中。在示例中,使用
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“”