使用Spring Rest模板时如何跳过SSL证书验证? 配置Rest Template,以便它使用Http Client创建请求。

注意:如果您熟悉sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target则下面的内容应该sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target您有所帮助。

Http客户端

首先,将HttpClient (> 4.4)导入到您的项目中

compile('org.apache.httpcomponents:httpclient:4.5.1')

配置RestTemplate

使用Http客户端的SSLContexts工厂方法配置SSLContext

TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext);CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build();HttpComponentsClientHttpRequestFactory requestFactory =new HttpComponentsClientHttpRequestFactory();requestFactory.setHttpClient(httpClient);RestTemplate restTemplate = new RestTemplate(requestFactory);

org.apache.http.ssl.TrustStrategy用于覆盖标准证书验证过程。 在上面的示例中-它始终返回true ,因此无需进一步验证即可信任证书。

考试

@Test
public void opensSSLPage() throws Exception {String uri = "https://some-secured-page.com";ResponseEntity<String> entity = restTemplate.getForEntity(uri, String.class);assertThat(entity.getStatusCode().is2xxSuccessful()).isTrue();
}

最后的话

上面的代码在某些情况下会有所帮助(例如,对具有自签名证书的服务器进行测试),但是不应在生产中使用它-除非您100%确信自己在做什么。

翻译自: https://www.javacodegeeks.com/2016/02/skip-ssl-certificate-verification-spring-rest-template.html

在Spring Rest模板中跳过SSL证书验证相关推荐

  1. Java 实现Https访问工具类 跳过ssl证书验证

    <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactI ...

  2. php curl 不验证ssl,PHP Curl https跳过ssl证书认证报错记录及解决

    PHP Curl https跳过ssl证书认证报错记录及解决 function get($url = '', $cookie = '') { $ch = curl_init(); curl_setop ...

  3. Web主机管理器(WHM)中如何安装SSL证书

    Web主机管理器(WHM)使用一个基于Web的应用程序,可帮助管理Web服务器上的托管账户.在Web主机管理器中如何安装SSL证书? 这里需要先购买SSL证书,选择受信任的CA机构(Digicert. ...

  4. java用HttpURLConnection发起HTTPS请求并跳过SSL证书,解决:unable to find valid certification path to requested targ

    java用HttpURLConnection发起HTTPS请求并跳过SSL证书 问题出现:unable to find valid certification path to requested ta ...

  5. python跳过ssl验证_Python SSL证书验证问题解决方案

    这篇文章主要介绍了Python SSL证书验证问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.SSL问题 1.在你不启用fiddle ...

  6. python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证

    1 https和SSL之间是什么关系 https和SSL之间是什么关系:https就是在http上面加了一层ssl协议,在http站点上部署SSL数字证书就变成了https. 现在随处可见 https ...

  7. python 指定证书验证_Python SSL证书验证问题解决方案

    Python SSL证书验证问题解决方案 这篇文章主要介绍了Python SSL证书验证问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ...

  8. 【Python爬虫系列教程 5-100】 Requests高级用法:文件上传,如何设置SSL证书验证、处理超时设置 、身份认证和代理设置

    文章目录 高级用法 文件上传 Cookies Session维持 SSL证书验证 超时设置 身份认证 代理设置 Prepared Request 高级用法 上篇,我们了解了requests的基本用法, ...

  9. ssl证书验证失败打不开网页

    现在说到证书方面的知识,大家一点都不陌生,反倒是有很多人比较熟悉,但是关于ssl证书验证失败打不开网页这个问题如何去处理,ssl证书下载又是怎么样的一个过程?大家很多都是不理解的.其实这个问题都是基础 ...

最新文章

  1. GPT-2的大规模部署:AI Dungeon 2 如何支撑百万级用户
  2. 完全卸载oracle11g教程、Oracle11g的卸载方法和步骤
  3. 手把手教你玩转SOCKET模型:完成端口(Completion Port)详解
  4. scheduledexecutorservice 只执行一次_一个ScheduledExecutorService启动的Java线程无故挂掉引发的思考...
  5. 显示隐藏-display(HTML、CSS)
  6. bzoj 1044: [HAOI2008]木棍分割(二分+DP)
  7. 【CNN长文详解】大话卷积神经网络CNN(干货满满)
  8. Retrofit的初次使用
  9. Oracle数据库的下载地址
  10. c语言贪吃蛇添加排行榜,用C语言写贪吃蛇笔记-1
  11. Python如果or运算的两个参数都等同于False,返回后一个值
  12. 芋道 Spring Cloud Netflix 注册中心 Eureka 入门
  13. linux视频补帧,如何用 60 帧播放 24 帧的视频?
  14. 淘宝 阿里 数据库 内核月报—目录索引
  15. 商汤的AI伴游小精灵(2019 计蒜之道 初赛 第一场)
  16. 使用Tracup中的时间阻塞,提升工作效率(完整指南)
  17. MSDC 4.3 接口规范(7)
  18. 海尔计算机无法装win7系统,海尔自带Win10系统如何改成Win7系统?海尔台式机装win7详细步骤...
  19. 华为云部署JavaWeb(SpringBoot)程序(基于Centos7)
  20. 以计算机网络为话题的英语作文,以Internet为话题的英语作文

热门文章

  1. Hibernate框架之入门配置
  2. C++描述杭电OJ 2014. 青年歌手大奖赛_评委会打分 ||
  3. 干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
  4. java中求5的阶乘
  5. javaWeb服务详解(含源代码,测试通过,注释) ——applicationContext-Service.xml
  6. 对应node版本_安装Node.js教程
  7. win10关闭快速启动_装系统不求人,快速制作启动U盘,傻瓜式重装WIN10
  8. java联接pg库_Java14:使用Java 14的新记录联接数据库表
  9. java获取ram_Java:ChronicleMap第2部分,超级RAM映射
  10. openjdk 编译_使用OpenJDK 11运行JAXB xjc编译器