设置https请求忽略安全证书
前两天要调用第三方的接口遇到了安全证书的问题,找了各种方法下面贴一下自己汇总的解决办法:
第一个写法(这个写法是最简单的,亲测有效,但是这个写法用到了jdk1.8的lambda表达式,1.8之前的版本就不支持):
private static CloseableHttpClient httpClient;//jdk1.8用此代码 static {try {SSLContext sslContext = SSLContextBuilder.create().useProtocol(SSLConnectionSocketFactory.SSL).loadTrustMaterial((x, y) -> true).build();RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(5000).build();httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).setSSLContext(sslContext).setSSLHostnameVerifier((x, y) -> true).build();} catch (Exception e) {e.printStackTrace();}}
然后直接调用httpClient就行了
第二个方法(我用的版本就是1.7的 所以用了这个办法):
private static CloseableHttpClient httpClient;
static {try {HostnameVerifier hv = new HostnameVerifier() {@Overridepublic boolean verify(String hostname, SSLSession session) {return true;}};javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];javax.net.ssl.TrustManager tm = new miTM();trustAllCerts[0] = tm;javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");sc.init(null, trustAllCerts, null);javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(5000).build();httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).setSSLContext(sc).setSSLHostnameVerifier(hv).build();} catch (Exception e) {e.printStackTrace();}}static class miTM implements javax.net.ssl.TrustManager,javax.net.ssl.X509TrustManager {public java.security.cert.X509Certificate[] getAcceptedIssuers() {return null;}public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {return true;}public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {return true;}public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)throws java.security.cert.CertificateException {return;}public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)throws java.security.cert.CertificateException {return;}}
也是直接调用httpClient就行了,亲测有效。
设置https请求忽略安全证书相关推荐
- springboot 使用restTemplate 发送https请求 忽略ssl证书
最近在写接口的时候给对方回推数据,发送https请求的时候遇到这么个报错:javax.net.ssl.SSLHandshakeException: sun.security.validator.Val ...
- python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证
1 https和SSL之间是什么关系 https和SSL之间是什么关系:https就是在http上面加了一层ssl协议,在http站点上部署SSL数字证书就变成了https. 现在随处可见 https ...
- iOS手机客户端https请求忽略证书认证
//设置证书,在客户端默认忽略证书认证 - (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectio ...
- c# https请求忽略证书验证_c# https绕过证书
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- c# https请求忽略证书验证_C# httpwebrequest访问HTTPS错误处理方法
C# httpwebrequest访问HTTPS链接时遇到这个错误,但是如果我开抓包工具,比如filddler2,则POST返回正常 错误提示的Message为: 基础连接已经关闭: 发送时发生错误. ...
- 【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程
以下教程可能耗费你数小时时间,请注意时间. 目标:抓取HTTPS的包 如果你的手机是在Android 7.0+及其以上,想要抓取HTTPS的请求,必须要将证书(*.pem)用系统用户的权限安装,即把这 ...
- java证书验证失败_Java 跳过 HTTPS 请求过程中证书验证问题
受益于谷歌和苹果对 HTTPS 的强制升级要求,服务已经全面升级了,安全性提高的同时也引起了新的问题. 由于 HTTPS 证书还是很贵的,所以各种测试环境上各种非法证书,通过浏览器访问的时候可以直接选 ...
- 宝塔面板设置HTTPS+阿里云SSL证书
1. 宝塔面板 指定某一域名 设置 宝塔SSL为宝塔官方提供的免费证书服务, 只需要在宝塔官网宝塔注册后实名认证, 申请证书然后按照指定的验证方式去验证域名, 完成之后就是等待审核 2. 阿里云SSL ...
- soapui 证书_SoapUI入门之附件上传和配置Https请求
已经欠了一堆的作业了,吼吼~ 拖延症是个大bug,废话不多说,马上进入咱们SoapUI的学习中来吧~ 现在开始我们的SoapUI集成测试学习之道: 一.如何使用SoapUI进行附件上传 做人还是不能这 ...
最新文章
- iOS开发之--打印一堆奇怪东西的解决方案
- 《深入理解ES6》笔记——Set集合与Map集合(7)
- 【转】React 16 中从 setState 返回 null 的妙用
- mysql判断数字的函数_Mysql必读MySql判断汉字、日期、数字的具体函数
- mupdf java_mupdf库学习
- 有两个python怎么停用其中一_python3.X 复学(2)-----开始了就不要停止
- 【POJ】3255 Roadblocks(次短路+spfa)
- MySQL:MySQL InnoDB引擎
- 巴士电台开放接口API
- scala yield入门详解
- oracle 存储过程 转换为mysql存储过程 实例总结 (数据库有感篇一)
- 移动边缘计算环境下边缘服务器放置方法研究
- c语言浮点数输出格式的控制,c语言输出格式控制
- STM8L_库函数-模板搭建
- 用DIV+CSS技术设计的网上书城网页与实现制作(大一Web课程设计)
- 计算机蓝屏代码0x0000007b,解决电脑蓝屏出现代码0x0000007b怎么解决
- Leetcode刷题——题目8、9、10
- 支付宝人脸识别身份证认证(新版SDK)
- 移动IM产品发展史及趋势预测
- 形式与政策部分开卷题目及答案