java如何解读证书里的内容(通过string 来生成X509Certificate对象)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何解读证书里的内容(通过string 来生成X509Certificate对象)?相关的知识,希望对你有一定的参考价值。

我可以读到证书文件里的内容,如下:假如证书为zyj.crt
File file = new File("D:\\zyj.crt");
InputStream inStream = new FileInputStream(file);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate oCert = (X509Certificate)cf.generateCertificate(inStream);
info = oCert.getSubjectDN().getName();
System.out.println("证书拥有者:"+info);

但现在的问题的,我的项目得到的不是证书文件,而是一个string。 这个string里的内容和zyj.crt文件里的内容是一样的。内容片断如下:
-----BEGIN CERTIFICATE----- MIICMjCCAZsCCQD3/xw1j77JATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJD
.....省略
-----END CERTIFICATE-----

我怎么通过这个string 来生成X509Certificate对象 然后读取里面的内容呢?

那个字符串是Base64编码后的

试着把String 转成inputStream,

InputStream inStream = new ByteArrayInputStream(caString.getBytes('UTF-8'));用这句替代 上面写的第二行代码。但是在执行第四行的时候报错。。

java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Unsupported encoding

就是把这个String 写到一个文件里,然后用上面的方法读这个文件。

参考技术A

1.我怎么通过这个string 来生成X509Certificate对象 

2.笨办法:就是把这个String 写到一个文件里,然后用上面的方法读这个文件。但这样效率太低了。

3.我还试着把String 转成inputStream,InputStream inStream newByteArrayInputStream(caString.getBytes("UTF-8"));用这句替代 上面写的第二行代码。但是在执行第四行的时候报错。。

4.java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Unsupported encoding

Java编程方法论-响应式 之 Rxjava篇 视频解读

最近给小伙伴分享了Rxjava的源码解读,并录制成视频,也是为了配合自己的未来出版的书,也是对书的内容的补充,将未能写进去的内容通过视频来展现,也加入了一些自己的理解。希望可以对大家有用。

合集请看:https://www.bilibili.com/video/av34537840/

油管:https://www.youtube.com/playlist?list=PL95Ey4rht798MMCusPzIW7VYD1xaKJVjc

以下为视频分享内容:

01 响应式入门

02 Java9中的响应式编程

03 Rxjava开篇

04 Rxjava中create方法的设计思想

05 Observables和Observable.cache()

06 无休止数据流与定时控制

07 Demo的设计初衷

08 Observable.cache()源码解读

09 ConnectableObservable与publish().refCount()解读

10 SubmissionPublisher 中订阅者状态的管理

11 RxJava中Subject解读

12 filter() map()深入解读与flatMap()初解

13 flatMap()与scan()深入解读

14 groupBy()进行分组

15 merge()的源码解读 上

16 merge()的源码解读 下

17 zip()的源码解读

18 combineLatest()的源码解读

19 withLatestFrom() 源码解读

20 amb() 操作源码解读

21 scan()操作的2次深入

22 reduce()源码解读

23 collect() 源码解读

24 distinct() distinctUntilChanged() compose() lift()及其他操作源码解读

25 Observable实战之Spring MVC返回值的响应式化改造

26 汇率查询的小服务及对于返回值处理抽取的前置知识讲解

27 写一个SpringMVC的响应式返回值处理组件springboot-starter

28 RxJava2中的多线程操作中调度器的引入

29 subscribeOn() observeOn() unsubscribeOn()操作源码解读

30 调度器Scheduler源码设计思路解读

31 调度器Scheduler源码解读补充1

32 调度器Scheduler源码解读补充2

33 调度器Scheduler源码解读补充3

34 背压回顾以及一些探究

35 rxjava中SpscLinkedArrayQueue无界队列的实现解读

36 从Observable到 Flowable 的设计思路 及Flowable.create() 中背压设计的解读

37 onBackpressureXXX()操作与Flowable.generate()解读

38 关于Rxjava解读简短的结束语


以上是关于java如何解读证书里的内容(通过string 来生成X509Certificate对象)?的主要内容,如果未能解决你的问题,请参考以下文章

解读泛域名证书(通配符证书) 如何免费申请

TLS/SSL数字证书里的指纹算法、签名算法和签名哈希算法各是做啥用的

java将system.out.println里的内容写入txt中

java如何读取txt文件

电脑里的证书怎么导出?

Java数字证书原理