Java通过 p12 建立ssl链接
2019独角兽企业重金招聘Python工程师标准>>>
public static void main(String[] args) throws UnrecoverableKeyException, KeyManagementException, NoSuchAlgorithmException, KeyStoreException, CertificateException, FileNotFoundException, IOException { ResourceLoader resourceLoader = new DefaultResourceLoader();InputStream keyStore = resourceLoader.getResource("test.p12").getInputStream();String keyStorePassword = "111111"; String keyPassword = "111111"; String KeyStoreType= "PKCS12"; String KeyManagerAlgorithm = "SunX509"; String SSLVersion = "SSLv3";new Test01().getHttpsURLConnection(null, keyStore, keyStorePassword, keyPassword, KeyStoreType, KeyManagerAlgorithm, SSLVersion);
}
public HttpURLConnection getHttpsURLConnection(URL url, InputStream keystore,String keyStorePass,String keyPassword, String KeyStoreType,String KeyManagerAlgorithm, String SSLVersion)throws NoSuchAlgorithmException, KeyStoreException,CertificateException, FileNotFoundException, IOException,UnrecoverableKeyException, KeyManagementException {System.setProperty("javax.net.debug","ssl,handshake,record");SSLContext sslcontext = SSLContext.getInstance(SSLVersion);KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerAlgorithm);KeyStore ks = KeyStore.getInstance(KeyStoreType);ks.load(keystore, keyStorePass.toCharArray());kmf.init(ks, keyPassword.toCharArray());TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());tmf.init(ks);TrustManager[] tm = tmf.getTrustManagers();sslcontext.init(kmf.getKeyManagers(), tm, null);SSLSocketFactory sslSocketFactory = sslcontext.getSocketFactory();HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory);//HttpsURLConnection httpsURLConnection = ( HttpsURLConnection)url.openConnection();return null;}
最开始拿到p12的时候,给的密码是错的,试了好久,最后断定是p12文件的密码不正确,
于是通过pem和key重新生成了一个p12文件,密码自己设置后,就成功了。
第二种实现方式:
KeyStore ks = KeyStore.getInstance("PKCS12");
char[] password = "p12pwd".toCharArray();
Resource resource = resourceLoader.getResource("test.p12");
ks.load(resource.getInputStream(), password);
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks, password);
SSLContext ssl = SSLContext.getInstance("TLS");
ssl.init(kmf.getKeyManagers(), null, null);
HttpsURLConnection httpsURLConnection = ( HttpsURLConnection)new URL("").openConnection();
httpsURLConnection.setSSLSocketFactory(ssl.getSocketFactory());
转载于:https://my.oschina.net/u/555639/blog/524821
Java通过 p12 建立ssl链接相关推荐
- Java 第一阶段建立编程思想 【房屋出租系统】
Java 第一阶段建立编程思想 [房屋出租系统] 1. 项目需求说明 2. 项目界面 1. 主菜单 2. 新增房源 3. 查找房源 4. 删除房源 5. 修改房源 6. 房屋列表 7. 退出系统 3. ...
- Java使用SSLContext请求https链接
Java使用SSLContext请求https链接 先了解几个关键类 SSLContext 安全套接字协议的实现核心类 SSLSocket 扩展自Socket用户客户端 SSLSocketFactor ...
- 等保: Postgresql配置ssl链接
文章目录 1 说明 2 操作步骤 2.1 数据库端调整 2.1.1 生成服务端证书 2.1.2 配置证书 2.1.3 生成客户端证书 2.2 使用pg库的服务端调整 3 避坑指南 3.1 证书核验通不 ...
- [C#]用HttpWebRequest加载证书建立SSL通道时发生异常的解决办法
编写者:郑昀@UltraPower 关键字:HttpWebRequest, SSL,X509Certificate dotNet Framwork 1.1 编写时间:2005-3-29 WSE 2. ...
- SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值
我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked S ...
- C语言 之建立静态链接库
下面说一下建立静态链接库的方法 各个C语言编程软件都有它的方法,比如建立一个工程来共享文件,这就比较容易和简单了,现在我们选择使用难一点的linux系统,探究在linux系统下的建立静态链接库的方法. ...
- C语言编译构建系统,C语言 之建立静态链接库
下面说一下建立静态链接库的方法 各个C语言编程软件都有它的方法,比如建立一个工程来共享文件,这就比较容易和简单了,现在我们选择使用难一点的linux系统,探究在linux系统下的建立静态链接库的方法. ...
- Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析
Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计 ...
- php数据库可转java数据库,php转java 系列2 Spring boo 链接数据库jdbc
php转java 系列2 Spring boo 链接数据库jdbc JDBC 首先创建一个新项目,在创建项目时要注意导入依赖, 在项目创建成功后就会看到在 pom.xml 文件中找到,但是如果在创建项 ...
最新文章
- 使用 Bundle在Activity间传递数据
- 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)
- OpenCV Python教程系列
- 201312-5 I’m stuck!
- java三国群雄_三国群英-真三国无双
- 黑客雇佣组织开发出新型的Windows 隐秘后门
- Java程序设计实验2
- SpringMVC中@RequestMapping参数设置
- pythonsample_python sample code | 学步园
- Swift3.0 中实现发短信功能
- 标志Logo设计的起源和艺术特点
- 网站制作的流程是什么?网站制作的流程包括哪些步骤?
- 怎么用python读取excel图_如何用Python读取Excel中图片?
- C#winform下获取主机ip及hostname
- 凯云水利水电工程造价管理系统 技术解析(七) 机械单价(二)
- 防止记录丢失,保存QQ聊天记录文件的方法
- 【白板推导系列笔记】数学基础-概率-高斯分布-求联合概率分布
- 【Spark NLP】第 12 章:情感分析和情绪检测
- html铺满整个页面_前端实践:怎么让一个HTML元素(标签)的区域铺满全屏?
- Go 开源说第十五期预告: Erda ——新一代企业级云原生 PaaS 平台
热门文章
- java b2b2c shop 多用户商城系统源码-common-service 项目构建过程
- idea新建web项目并配置运行教程
- 英国科研学术网络Janet遭遇DDoS攻击
- 所有权链(Ownership Chain)
- /dev/null脚本中作用
- Laravel后台 + AngularJS前端 的网站构建与维护
- kvm虚拟化学习笔记(二)之linux kvm虚拟机安装
- rsync+rsync+crond备份
- 我的c++学习(1)hello world!
- thread和threadLocal之间的关系