报错信息

  1. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

  1. 如果证书过期,配置容器为http请求,就可搞定。
  2. 如果postman请求遇到此情况:Could not get any response

解决:

postman方式

  1. 打开postman ---> File ---> Settings

  2. 关闭图片红框里的SSL..选项为OFF

这样就可以了.

java请求

直接贴代码了。

  1. /**
  2. * 采用绕过验证的方式处理https请求
  3. * @param url
  4. * @param json
  5. * @return
  6. */
  7. public static String doGet(String url, JSONObject json) {
  8. String body = "";
  9. SSLContext sslcontext = null;
  10. try {
  11. //设置协议http和https对应的处理socket链接工厂的对象
  12. sslcontext = createIgnoreVerifySSL();
  13. Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
  14. .register("http", PlainConnectionSocketFactory.INSTANCE)
  15. .register("https", new SSLConnectionSocketFactory(sslcontext))
  16. .build();
  17. PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
  18. HttpClients.custom().setConnectionManager(connManager);
  19. //创建自定义的httpclient对象
  20. CloseableHttpClient client = HttpClients.custom().setConnectionManager(connManager).build();
  21. //处理请求参数拼接(参数为json) 如:?name = ""&pwd = ""
  22. String param = changeJsonToArguments(json);
  23. String urlNameString = url + param;
  24. //创建get方式请求对象
  25. HttpGet get = new HttpGet(urlNameString);
  26. //指定报文头Content-type、User-Agent
  27. //get.setHeader("Content-type", "application/x-www-form-urlencoded");
  28. get.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2");
  29. //执行请求操作,并拿到结果(同步阻塞)
  30. CloseableHttpResponse response = client.execute(get);
  31. //获取结果实体
  32. HttpEntity entity = response.getEntity();
  33. if (entity != null) {
  34. //按指定编码转换结果实体为String类型
  35. body = EntityUtils.toString(entity, "UTF-8");
  36. }
  37. EntityUtils.consume(entity);
  38. //释放链接
  39. response.close();
  40. } catch (ClientProtocolException e) {
  41. e.printStackTrace();
  42. } catch (IOException e) {
  43. e.printStackTrace();
  44. } catch (NoSuchAlgorithmException e) {
  45. e.printStackTrace();
  46. } catch (KeyManagementException e) {
  47. e.printStackTrace();
  48. }finally{
  49. }
  50. return body;
  51. }
  52. public static SSLContext createIgnoreVerifySSL() throws NoSuchAlgorithmException, KeyManagementException {
  53. SSLContext sc = SSLContext.getInstance("SSLv3");
  54. // 实现一个X509TrustManager接口,用于绕过验证,不用修改里面的方法
  55. X509TrustManager trustManager = new X509TrustManager() {
  56. @Override
  57. public void checkClientTrusted(
  58. java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
  59. String paramString) {
  60. }
  61. @Override
  62. public void checkServerTrusted(
  63. java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
  64. String paramString) {
  65. }
  66. @Override
  67. public java.security.cert.X509Certificate[] getAcceptedIssuers() {
  68. return null;
  69. }
  70. };
  71. sc.init(null, new TrustManager[] { trustManager }, null);
  72. return sc;
  73. }

有帮助请留言...

更多文章:www.ipooli.com

https绕过证书认证请求 Get或Post请求(证书过期,忽略证书)的更多相关文章

  1. SSL通信-忽略证书认证错误

    .NET的SSL通信过程中,使用的证书可能存在各种问题,某种情况下可以忽略证书的错误继续访问.可以用下面的方式跳过服务器证书验证,完成正常通信. 1.设置回调属性ServicePointManager ...

  2. Https握手协议以及证书认证

    1. 什么是https Https = http + 加密 + 认证 https是对http的安全强化,在http的基础上引入了加密和认证过程.通过加密和认证构建一条安全的传输通道.所以https可以 ...

  3. 【密码学】Https握手协议以及证书认证

    1. 什么是https Https = http + 加密 + 认证 https是对http的安全强化,在http的基础上引入了加密和认证过程.通过加密和认证构建一条安全的传输通道.所以https可以 ...

  4. Https自签名证书认证及数据请求的封装

    在WWDC 2016开发者大会上,苹果宣布了一个最后期限:到2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能.App Transpor ...

  5. QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种,实测成功)

    以VS开发为例.因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com ...

  6. QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种)

    因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com/product ...

  7. https的证书认证 iOS版

    一.证书链 SecTrustRef: SecTrustRef trust = challenge.protectionSpace.serverTrust; 需要先拿出一个 SecTrustRef 对象 ...

  8. HTTPS协议、TLS协议、证书认证过程解析

    一.HTTPS 协议 HTTPS协议其实就是HTTP over TSL,TSL(Transport Layer Security) 传输层安全协议是https协议的核心. TSL可以理解为SSL (S ...

  9. https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL_转

    转自:https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL 因为项目中要用到TLS + SASL 来做安全认证层. 所以看了一些网上的资料, 这里做一个总结. 1. 首 ...

  10. java实现https免证书认证

    java实现https免证书认证   解决方法: 1.下载两个包,httpclient-4.2.jar和httpcore-4.2.jar,复制以下代码就可使用. 2.调用类代码: String htt ...

随机推荐

  1. influxes 基本概念

    Influxes 基本概念 1.安装 两种,虚机的话直接下载二进制文件起就好了,容器也很方便,存储挂载到/var/lib/influxdb 起就ok,配置文件可以通过configmap挂载进去. 2. ...

  2. svn简单用法

    svn checkout  .. dir  ,选rw 的那个目录 svn up( update) svn add .. svn commit .. -m "add sth"  这里 ...

  3. DOM的使用

    1. 修改: 3样: 1. 内容: 3个属性: 1. 获取或修改原始HTML片段: 元素.innerHTML 2. 获取或修改纯文本内容: 元素.textContent vs innerHTML 1. ...

  4. jQuery的面试题

    1.$的原理 答案: 1)$("选择器")是先查找DOM元素,再将DOM元素放入jQuery对象中 其中自带优化: 如果选择器是#id,则自动调用getElementById 如果 ...

  5. Redis-主从

    主从复制过程 1.从服务器开始连接主服务器时,会向主服务器发送一个SYNC同步命令 2.主服务器接收到命令后,执行BGSAVE,异步的将写命令保存到一个缓冲区里 3.主服务器执行完BGSAVE之后,就 ...

  6. asp中设置session过期时间方法总结

    http://www.jb51.net/article/31217.htm asp中设置session过期时间方法总结 作者: 字体:[增加 减小] 类型:转载   asp中默认session过期时间 ...

  7. HashMap基本介绍

    1.HashMap简介(本文是按照JDK1.8进行解析) HashMap位于JDK自带jar包rt.jar的java.util目录下. HashMap是一个散列表,存储的内容是键值对<key,v ...

  8. 【python爬虫】scrapy入门7:Scrapy中runspider和crawl的区别

    runspider:不依赖创建项目 命令:scrapy runspider myspider.py  等同于  pyhton myspider.py crawl:使用spider进行爬取,依赖项目创建 ...

  9. 约瑟夫环(超好的代码存档)--19--约瑟夫环--LeetCode面试题62(圆圈最后剩下的数字)

    圆圈中最后剩下的数字 0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数字组成一个圆圈,从数字0 ...

  10. kubeadm 搭建kubernetes集群环境

    需求 kubeadm 搭建kubernetes集群环境 准备条件 三台VPS(本文使用阿里云香港 - centos7.7) 一台能SSH连接到VPS的本地电脑 (推荐连接工具xshell) 安装步骤 ...