使用HttpURLConnection 越过ssl证书访问htts协议接口


```javastatic HostnameVerifier hv = new HostnameVerifier() {@Overridepublic boolean verify(String urlHostName, SSLSession session) {System.out.println("Warning: URL Host: " + urlHostName + " vs. "+ session.getPeerHost());return true;}};private static void trustAllHttpsCertificates() throws Exception {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());}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;}}

使用时申明调用

public static String check(String key,String uri){trace.info("auth check uri "+uri);String responsestr="fail";URL wsurl;HttpURLConnection uconn=null;PrintWriter out1;char Readbuf[];BufferedReader in1;StringBuffer respb;int len;String key1 = "key="+key;String params=key1;try {trace.info("auth check "+key);try {trustAllHttpsCertificates();HttpsURLConnection.setDefaultHostnameVerifier(hv);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}wsurl=new URL(uri);uconn=(HttpURLConnection) wsurl.openConnection();uconn.setRequestMethod("POST");  uconn.setAllowUserInteraction(false);uconn.setDoOutput(true);uconn.setDoInput(true);uconn.setUseCaches(false);uconn.setConnectTimeout(3000);uconn.setReadTimeout(5000);out1=new PrintWriter(uconn.getOutputStream());out1.write(params, 0, params.length());out1.close();in1=new BufferedReader(new InputStreamReader(uconn.getInputStream()));Readbuf =new char[1024];respb=new StringBuffer(1024);while((len=in1.read(Readbuf))!=-1){respb.append(Readbuf,0,len);}in1.close();responsestr=respb.toString();} catch (MalformedURLException e) {trace.error(key+ " Authentication MalformedURLException "+e.getMessage());} catch (IOException e) {trace.error(key+" Authentication IOException "+e.getMessage());}finally{if(uconn!=null){       uconn.disconnect();trace.info("disconnect "+key);}}return responsestr;}

引用之后就可以使用了

使用HttpURLConnection 越过ssl证书访问htts协议接口相关推荐

  1. springboot配置SSL证书设置https协议访问的端口

    配置SSL证书需要证书文件 和 密钥 1. 将证书文件移动到resources目录下 2. 在yml配置文件中配置如下: server:port: 443 #服务端口ssl:key-store: cl ...

  2. nginx--基于openssl自颁发SSL证书实现HTTPS协议安全访问网站

    学习背景 大家在nginx安装(nginx安装教程)后,启动nginx,访问静态页面时,一般都是直接通过HTTP协议进行访问页面,如下图所示: 但实际应用中,有很多网站基于安全方面上的考虑,都有自己的 ...

  3. linux nginx 配置ssl证书访问

    http://www.linuxidc.com/Linux/2013-08/88271.htm 一.什么是 SSL 证书,什么是 HTTPS SSL 证书是一种数字证书,它使用 Secure Sock ...

  4. CURL使用SSL证书访问HTTPS

    在支付的交互过程中,安全绝对是需要考虑的重要因素之一.体现在对服务器交互数据的签名等环节,但有的时候为了能达到更高的安全级别,还需要用ssl证书,即web服务器有证书,浏览器客户端/请求端也需要安装证 ...

  5. 谷歌浏览器安全证书不受信任_使用SSL证书https协议,完美解决谷歌Chrome浏览器“不安全”...

    传统的http协议,存在被监听.劫持等安全风险,故众多浏览器都已经http协议标记为"不安全".尤其是谷歌Chrome浏览器对"不安全"的提示最为明显,360浏 ...

  6. 踩了大坑:https 证书访问错乱

    文章目录 一.问题排查及解决 问题一:证书加载错乱 问题二:DNS 解析污染问题 问题三:浏览器校验问题 二.终极解决方法 2.1 可外网访问域名 2.2 只能内网访问域名 2.3 内网自动化配置 2 ...

  7. 什么是 SSL 证书及其工作原理

    什么是 SSL 证书? 了解 SSL 的用途.SSL 和 TLS 之间的区别.它们的工作方式以及何时应该使用它们. 什么是 SSL 证书? SSL(安全套接字层)是 TLS(传输层安全性)的通用名称, ...

  8. php iis6 安装ssl证书,在IIS下部署SSL证书实现HTTPS

    HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为"不安全",对于站长来说,部署SS ...

  9. 阿里云免费ssl证书(PFX格式证书)安装

    http和https理解 http:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的传输协议.它可以使浏览器更加高 ...

最新文章

  1. Examples_06_02(android)DDMS的data文件中没有显示文件。
  2. 深入探索并发编程之内存屏障:资源控制操作
  3. 对于大型公司项目平台选择j2ee的几层认识
  4. 数据库中字段类型Number(n,m)大概说明
  5. linux安装各种文件格式,Embeded linux中的各类文件系统
  6. git分支开发常用命令
  7. 2021 年 Web 开发的 7 大趋势,我只能说牛逼!
  8. 4.串口操作之API篇 CreateFile
  9. 2016河北省职称计算机考试试题及答案,2016年最新河北省职称计算机考试试题及答案..doc...
  10. loadRunner之中文语言包安装
  11. Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)
  12. 计算机应用媒体,计算机应用技术与计算机多媒体技术哪个好
  13. 黑客惊天发现:苹果公司能监视每台iPhone
  14. 盘点Linux下的开源云平台云存储服务
  15. CentOS 7 操作防火墙
  16. Isight2019 集成MATLAB2019 (64位)的优化问题
  17. OCA/OCP Oracle 数据库12c考试指南读书笔记:第27章: Duplicating a Database
  18. (附源码)计算机毕业设计ssm高校教材管理系统
  19. Tanner L-Edit 系列教程:02 示例安装与工艺库
  20. java mp3 信息_java读取MP3的信息 | 学步园

热门文章

  1. excel股票今日走势计算机,有没有可以在excel上自动显示股票实时数据的方法
  2. 这些联盟可以去注册试一下
  3. 青蛙相会(frog)
  4. Verilog状态机详述
  5. Windows10共享CentOS文件系统(Samba的使用)
  6. git提交失败running pre-commit hook: lint-staged [33m‼ Some of your tasks use `git add` command
  7. 电脑显示不了WiFi的解决方法
  8. 2018辽大计算机拟录取,四川大学计算机学院2018年硕士研究生招生拟录取名单及成绩公示...
  9. itextsharp 获取文本_利用iTextSharp提取PDF文件中的文本内容
  10. 从事java的年龄_请教前辈们:JAVA的职业有年龄限制吗