hostname in certificate didn't match

接口测试遇到的问题:发送get请求报错:hostname in certificate didn't match

修改:

// @SuppressWarnings({"resource"}) HttpClient client = new DefaultHttpClient();
HttpClient client = HttpClientSSLUtil.createSSLClientDefault();

 

HttpClientSSLUtil.java文件:
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

import javax.net.ssl.SSLContext;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

public class HttpClientSSLUtil {

public static CloseableHttpClient createSSLClientDefault() {

try {
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {

//信任所有

public boolean isTrusted(X509Certificate[] chain,

String authType) throws CertificateException {
return true;
}
}).build();

SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext);

return HttpClients.custom().setSSLSocketFactory(sslsf).build();

} catch (KeyManagementException e) {

e.printStackTrace();

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

} catch (KeyStoreException e) {

e.printStackTrace();

}

return HttpClients.createDefault();

}
}
 

posted on 2018-05-08 19:26  张&娟  阅读(1830)  评论(0编辑  收藏  举报

导航