Java证书读取的两种方式
来源:互联网 发布:java通过url调用接口 编辑:程序博客网 时间:2024/05/22 06:40
直接点来思路:
这两种方式,原本就是一种方式,这里我放两种案例主要是针对不同的项目,所展现的形式不一样
以下是两种方式的核心思路:
1, 方法的参数 .p12证书,密码,keyStore类型,算法,协议;2, 将字符串密码转换为字符数组;3, KeyStore获取实例,getInstance(keystoreType);4, 其调用 load(keyStore,pwdChars);5, KeyManagerFactory获取实例, getInstance(alogrithm);6, 其调用 init(keyStore对象,pwdchars);7, TrustManagerFactory 获取实例, getInstance(alogrithm);8, 其调用 初始化init (KeyStore(null));9, SSLContext 获取实例, getInstance(protocol);10, 其初始化, init(kf.getKeyManager(),ktf.getTrustManager(),null);11, 最后返回sslcontext.getSocketFactory();
结合项目一所展示的内容:
第一步: 创建类,类里面是规定的常量:
其中我们使用到的是这三个参数:
第二步: 创建一个方法,主要是核心思路的展示,这里要非常的详细
具体步骤简介:
第一步骤:
public static SocketFactory createSocketFactory(InputStream keyStore, String password, String keystoreType, String algorithm, String protocol) {}
keyStore-----java代码读取的证书内容作为流的形式输出;password-----上面.p12证书创建时所输入的密码;keyStoreType---"PKCS12";algorithm----"sunx509";protocol----"TLS";
第二步骤:
char[] pwdChars = password.toCharArray()将字符串密码转换为字符数组;
第三步骤:
KeyStore ks = KeyStore.getInstance(keystoreType);获取KeyStore实例;
第四步骤:
ks.load(keyStore, pwdChars);使用keyStore对象加载证书及其密码;
第五步骤:
KeyManagerFactory kf = KeyManagerFactory.getInstance(algorithm);获取KeyManagerFactory
第六步骤:
kf.init(ks, pwdChars);其调用 init(keyStore对象,pwdchars)
第七步骤:
TrustManagerFactory tmf = TrustManagerFactory.getInstance(algorithm);获取TrustManagerFactory;
第八步骤:
tmf.init((KeyStore)null);初始化TrustManagerFactory对象;
第九步骤:
SSLContext context = SSLContext.getInstance(protocol);获取SSLContext实例;
第十步骤:
context.init(kf.getKeyManagers(), tmf.getTrustManagers(), null);初始化 SSLContext对象,包含的参数 kf.getKeyManagers(), tmf.getTrustManagers();
第十一步骤:
return context.getSocketFactory();
返回SocketFactory对象
至此第一种方式的思路及其步骤的介绍已经完毕,接下来直接看第二种方式;
String password = ""; 获取密码两种方式: 方式一: 直接写配置文件,在service层中加载配置文件,获取密码,适用场景比较窄小,密码较多,不方便管理; 方式二: 文件名以当前密码命名,通过读取全路径,然后截取,获取当前密码;FileInputStream fileInputStream = new FileInputStream("xxxx.p12");加载.p12证书;KeyStore keyStore = KeyStore.getInstance("PKCS12");获取KeyStore实例;keyStore.load(fileInputStream, password.toCharArray());加载keyStore的load方法,参数是.p12证书,及其它对应的密码;KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("sunx509");获取KeyManagerFactory实例;keyManagerFactory.init(keyStore, password.toCharArray());KeyManagerFactory 初始化方法;
第二种方式 是项目中读取证书的代码的展示,只是部分代码,请酌情应用到自己的代码里面;
以后还会介绍关于 app端 读取证书的代码流程,请关注本博客,欢迎分享;
我们博客的口号是 分享,共勉,互促;
阅读全文
0 0
- Java证书读取的两种方式
- Java读取excel的两种方式
- Java读取Excel的两种方式方式介绍
- java读取xml文件的两种方式
- java读取XML文件的两种方式
- JAVA中properties配置文件的两种读取方式
- java程序读取properties配置文件的两种方式,备忘
- Java 读取TXT文件的两种方式
- java读取properties文件的两种方式
- 读取Java中配置文件的两种方式
- Java中读取properties文件的两种方式
- Java代码读取图片的两种方式
- Flex读取XML的两种方式
- 读取xml Rss 的两种方式
- 读取ebp值的两种方式
- 资源文件的两种读取方式
- 读取excel的两种方式
- android读取联系人的两种方式
- 初见蓝桥—— 历届试题 分糖果
- hadoop进程之间的对应关系和相关概念
- leetcode169题解
- 使用redis和zookeeper实现分布式锁
- 1049. Counting Ones (30)
- Java证书读取的两种方式
- muduo网络库源码解析 六
- java中对负数取模运算
- C#完整聊天室服务器和客户端代码实例
- SpringMVC动态获取Message
- Ubuntu 常用命令
- [PAT-甲级]1005.Spell It Right
- 外包 === _____ ? 外包 : 非外包
- C语言-给定某日期为周几求另一日期为周几