public final static void main(String[] args) throws Exception {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
// 加载证书文件FileInputStream instream = new FileInputStream(new File("/home/victor/my.store"));
FileInputStream instream = new FileInputStream(
new File("E:\\apache-tomcat-8.0.53-windows-x64\\ssl\\tomcat.keystore"));
try {
trustStore.load(instream, "你的证书密码".toCharArray());
} finally {
instream.close();
}
SSLContext sslcontext = SSLContexts.custom().loadTrustMaterial(trustStore).build();
// SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
/**
* 如果报这个错:javax.net.ssl.SSLException: hostname in certificate didn't
* match证书不匹配的主机名 new SSLConnectionSocketFactory(sslcontext,
* SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER)
*/
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,
SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
// sslsf.ALLOW_ALL_HOSTNAME_VERIFIER=new AllowAllHostnameVerifier();
// sslsf.setHostnameVerifier(new AllowAllHostnameVerifier());
// SSLSocketFactory.getSocketFactory().setHostnameVerifier(new
// AllowAllHostnameVerifier());
CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
HttpClients.custom().setSSLSocketFactory(sslsf);
try
{
// 访问支付宝
HttpGet httpget = new HttpGet("https://localhost:8443/rest");// HttpGet httpget = new HttpGet("https://www.alipay.com/");
System.out.println("executing request" + httpget.getRequestLine());
CloseableHttpResponse response = httpclient.execute(httpget);
try {
HttpEntity entity = response.getEntity();
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println(EntityUtils.toString(entity));
}
} finally {
response.close();
}
} finally {
httpclient.close();
}
}
https://localhost:8443/rest
接口地址
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.2</version>
</dependency>