java实现https免证书认证
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免证书认证相关推荐
- HttpClient 4.3 - https 免SSL认证
HttpClient 4.3 - https 免SSL认证 HttpClient 4.3 - https 免SSL认证 问题出现 使用DefaultHttpClient HttpClient 4.3实 ...
- iOS开发-https免证书验证
此处博主做一个声明,如果你想跳过https的双向验证,仅仅单向进行直接信任所有的证书,那么你们的后台也必须是允许单向验证的,否则设置了双向验证,客户端是无法跳过的,实在不想当初辛苦的经验被无知的小白说 ...
- java https 验证客户端证书_Java HTTPS客户端证书认证
小编典典 终于设法解决了所有问题,所以我会回答我自己的问题.这些是我用来解决特定问题的设置/文件: 该客户端的密钥库是一个PKCS#12格式文件包含 客户端的公共证书(在这种情况下,由自签名CA签名) ...
- OpenSSL创建HTTPS的证书认证
一.HTTPS的证书 HTTPS是HTTP+TLS结合的产物. HTTPS利用TLS可以完成: ①身份认证(防止冒充身份) ②加密数据(防止监听到数据) ③保证信息的完整性(防止信息的篡改) 而HTT ...
- Java https服务器证书认证问题解决方案
Java https连接的"unable to find valid certification path to requested target","PKIX path ...
- https及证书认证
一.HTTPS通讯原理 Https是基于安全目的的Http通道,其安全基础由SSL层来保证. 最初由Netscape公司研发,主要提供了通讯双方的身份认证和加密通信方法. 二.SSL协议通信过程 1. ...
- Tomcat7 配置Https双向证书认证
下午闲来无事,发现了yale 的cas,继而发现要用到tomcat的https,通过网上找的资料和自己实践所的,写下此篇文章以留记录查看 第一步:为服务器生成证书 win+r 输入cmd进入控制台, ...
- 百度地图--证书认证问题
百度地图在局域网内使用HTTPS协议证书认证失败解决方法 问题原因 根据甲方客户要求,需要将项目之前的HTTP协议改为安全的HTTPS协议,且将之前应用的离线百度地图,改为在线百度地图. HTTPS证 ...
- java操作ad域 免证书
为什么80%的码农都做不了架构师?>>> 只提供免证书的认证部分,操作部分可以百度. 认证部分,得到context即可对域进行各种操作: /*** 本文章是针对java JND ...
最新文章
- R语言dplyr包if_else条件判断选择函数实战
- 搜索引擎爬虫蜘蛛的USERAGENT大全
- 安装很久_快看啦!吊轨推拉门安装图解在这里。
- idea配置Run Dashboard的方法(亲测有效)
- 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
- nc65右键生成菜单_DbSchema生成表单和报表,原来如此简单
- python位置参数ppt_如何在Python中使用一个或多个相同的位置参数?
- 找工作时应该选大公司还是小公司?
- C++利用MySQL API连接和操作数据库
- Android基础入门教程——7.5.4 WebView文件下载
- 互联网赚钱指南!我是如何零成本空手套白狼?
- NQueen问题(N皇后问题Java)
- QT中文字体显示以及字体大小不能改变的问题
- 《关于2010年计算机信息系统集成项目经理资质申报有关事项的通知》
- Thinkpad 蓝牙键盘 Fn 键处于锁定状态的解决方法
- 中小型企业Web开发框架
- android开发脚本之awk
- 一行神奇的javascript代码
- spring的DI,IOP,AOC,Spring的简单介绍
- [POI2011] SEJ-Strongbox(数论)
热门文章
- tar.gz 文件类型(tar文件的解压和压缩)
- 死锁问题案例分析解决
- 计算智能-群智能算法-粒子群算法matlab实现
- [转] c++的多态(一个接口,多种实现)
- php合同在线签约功能_【市场在线】杭汽辅机实现海外发电市场重大突破 —成功签约阿联酋Fujairah F3 IPP项目表冷器合同...
- Java线程之守护线程(Daemon)
- springboot+security整合(1)
- # # # 正则
- Gym 101194D Ice Cream Tower
- mySQL建表及练习题(下)