java实现https免证书认证

解决方法:

1.下载两个包,httpclient-4.2.jar和httpcore-4.2.jar,复制以下代码就可使用。

2.调用类代码:

String httpOrgCreateTest = "https://url";

Map<String,Object> createMap = new HashMap<String,Object>();

createMap.put("name","8888888");

createMap.put("num","11111");

createMap.put("array",list.toArray());

String message = JSON.toJSONString(createMap);

String result = HttpRequest.sendPost(httpOrgCreateTest, message);

3.HttpRequest类

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSocketFactory;

import javax.net.ssl.TrustManager;

public class HttpRequest {

public static String sendPost(String url, String param) {

PrintWriter out = null;

BufferedReader in = null;

String result = "";

try {

// 创建SSLContext对象,并使用我们指定的信任管理器初始化

TrustManager[] tm = { new MyX509TrustManager() };

SSLContext sslContext = SSLContext.getInstance("SSL");

sslContext.init(null, tm, new java.security.SecureRandom());

// 从上述SSLContext对象中得到SSLSocketFactory对象

SSLSocketFactory ssf = sslContext.getSocketFactory();

// 打开和URL之间的连接

//URL realUrl = new URL(url);

URL realUrl= new URL(null, url, new sun.net.www.protocol.https.Handler());

HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();

conn.setSSLSocketFactory(ssf);

// 设置通用的请求属性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("content-Type", "application/json");

conn.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

// 发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

// 获取URLConnection对象对应的输出流

out = new PrintWriter(conn.getOutputStream());

// 发送请求参数

out.print(param);

// flush输出流的缓冲

out.flush();

// 定义BufferedReader输入流来读取URL的响应

in = new BufferedReader(

new InputStreamReader(conn.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

} catch (Exception e) {

System.out.println("发送 POST 请求出现异常!"+e);

e.printStackTrace();

}

//使用finally块来关闭输出流、输入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(IOException ex){

ex.printStackTrace();

}

}

return result;

}

}

4.MyX509TrustManager类

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import javax.net.ssl.X509TrustManager;

public class MyX509TrustManager implements X509TrustManager{

@Override

public void checkClientTrusted(X509Certificate[] chain, String authType) throws

CertificateException {

}

@Override

public void checkServerTrusted(X509Certificate[] chain, String authType) throws

CertificateException {

}

@Override

public X509Certificate[] getAcceptedIssuers() {

return null;

}

}

转载于:https://www.cnblogs.com/chinaifae/p/10188499.html

java实现https免证书认证相关推荐

  1. HttpClient 4.3 - https 免SSL认证

    HttpClient 4.3 - https 免SSL认证 HttpClient 4.3 - https 免SSL认证 问题出现 使用DefaultHttpClient HttpClient 4.3实 ...

  2. iOS开发-https免证书验证

    此处博主做一个声明,如果你想跳过https的双向验证,仅仅单向进行直接信任所有的证书,那么你们的后台也必须是允许单向验证的,否则设置了双向验证,客户端是无法跳过的,实在不想当初辛苦的经验被无知的小白说 ...

  3. java https 验证客户端证书_Java HTTPS客户端证书认证

    小编典典 终于设法解决了所有问题,所以我会回答我自己的问题.这些是我用来解决特定问题的设置/文件: 该客户端的密钥库是一个PKCS#12格式文件包含 客户端的公共证书(在这种情况下,由自签名CA签名) ...

  4. OpenSSL创建HTTPS的证书认证

    一.HTTPS的证书 HTTPS是HTTP+TLS结合的产物. HTTPS利用TLS可以完成: ①身份认证(防止冒充身份) ②加密数据(防止监听到数据) ③保证信息的完整性(防止信息的篡改) 而HTT ...

  5. Java https服务器证书认证问题解决方案

    Java https连接的"unable to find valid certification path to requested target","PKIX path ...

  6. https及证书认证

    一.HTTPS通讯原理 Https是基于安全目的的Http通道,其安全基础由SSL层来保证. 最初由Netscape公司研发,主要提供了通讯双方的身份认证和加密通信方法. 二.SSL协议通信过程 1. ...

  7. Tomcat7 配置Https双向证书认证

    下午闲来无事,发现了yale 的cas,继而发现要用到tomcat的https,通过网上找的资料和自己实践所的,写下此篇文章以留记录查看 第一步:为服务器生成证书  win+r 输入cmd进入控制台, ...

  8. 百度地图--证书认证问题

    百度地图在局域网内使用HTTPS协议证书认证失败解决方法 问题原因 根据甲方客户要求,需要将项目之前的HTTP协议改为安全的HTTPS协议,且将之前应用的离线百度地图,改为在线百度地图. HTTPS证 ...

  9. java操作ad域 免证书

    为什么80%的码农都做不了架构师?>>>    只提供免证书的认证部分,操作部分可以百度. 认证部分,得到context即可对域进行各种操作: /*** 本文章是针对java JND ...

最新文章

  1. R语言dplyr包if_else条件判断选择函数实战
  2. 搜索引擎爬虫蜘蛛的USERAGENT大全
  3. 安装很久_快看啦!吊轨推拉门安装图解在这里。
  4. idea配置Run Dashboard的方法(亲测有效)
  5. 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
  6. nc65右键生成菜单_DbSchema生成表单和报表,原来如此简单
  7. python位置参数ppt_如何在Python中使用一个或多个相同的位置参数?
  8. 找工作时应该选大公司还是小公司?
  9. C++利用MySQL API连接和操作数据库
  10. Android基础入门教程——7.5.4 WebView文件下载
  11. 互联网赚钱指南!我是如何零成本空手套白狼?
  12. NQueen问题(N皇后问题Java)
  13. QT中文字体显示以及字体大小不能改变的问题
  14. 《关于2010年计算机信息系统集成项目经理资质申报有关事项的通知》
  15. Thinkpad 蓝牙键盘 Fn 键处于锁定状态的解决方法
  16. 中小型企业Web开发框架
  17. android开发脚本之awk
  18. 一行神奇的javascript代码
  19. spring的DI,IOP,AOC,Spring的简单介绍
  20. [POI2011] SEJ-Strongbox(数论)

热门文章

  1. tar.gz 文件类型(tar文件的解压和压缩)
  2. 死锁问题案例分析解决
  3. 计算智能-群智能算法-粒子群算法matlab实现
  4. [转] c++的多态(一个接口,多种实现)
  5. php合同在线签约功能_【市场在线】杭汽辅机实现海外发电市场重大突破 —成功签约阿联酋Fujairah F3 IPP项目表冷器合同...
  6. Java线程之守护线程(Daemon)
  7. springboot+security整合(1)
  8. # # # 正则
  9. Gym 101194D Ice Cream Tower
  10. mySQL建表及练习题(下)