解决httpclient访问ssl资源报证书错误的问题
Posted birkhoff
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决httpclient访问ssl资源报证书错误的问题相关的知识,希望对你有一定的参考价值。
public class HttpsTest { @SuppressWarnings("deprecation") public static void main(String[] args) { try { SSLContext context = SSLContext.getInstance("SSL"); context.init(null, new TrustManager[] {new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } }}, new SecureRandom()); HostnameVerifier verifier = new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }; SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(context, verifier); HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory).build(); String url = "https://pic2.zhimg.com/6f7c6805962dc58cc21d4df748f18125_xl.jpg"; HttpGet request = new HttpGet(url); HttpResponse response = httpClient.execute(request); HttpEntity entity = response.getEntity(); InputStream in = entity.getContent(); byte[] b = new byte[1024]; int len = 0; OutputStream out = new FileOutputStream("E:/testImage/" + "httpstest.jpg"); while ((len = in.read(b)) != -1) { out.write(b, 0, len); } out.close(); } catch (Exception e) { e.printStackTrace(); } } }
以上是关于解决httpclient访问ssl资源报证书错误的问题的主要内容,如果未能解决你的问题,请参考以下文章
解决一次由于SSL证书到期导致的网站不能访问的问题(Nginx,php,Apache)