首页 > 编程语言 >java安全架构____读取.cer证书文件的信息

java安全架构____读取.cer证书文件的信息

时间:2023-09-13 12:31:43浏览次数:42  
标签:java System ____ cer x509Certificate println ___ out


import java.io.FileInputStream;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;

/**
 * @author God
 * 随便找一个.cer文件读取即可
 */
public class CertUtil {
	/**
	 * @author God
	 * @cerPath Java读取Cer证书信息
	 * @throws Exception 
	 * @return X509Cer对象
	 */
	public static X509Certificate getX509CerCate(String cerPath) throws Exception {
		X509Certificate x509Certificate = null;
		CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
		FileInputStream fileInputStream = new FileInputStream(cerPath);
		x509Certificate = (X509Certificate) certificateFactory.generateCertificate(fileInputStream);
		fileInputStream.close();
		System.out.println("读取Cer证书信息...");
		System.out.println("x509Certificate_SerialNumber_序列号___:"+x509Certificate.getSerialNumber());
		System.out.println("x509Certificate_getIssuerDN_发布方标识名___:"+x509Certificate.getIssuerDN()); 
		System.out.println("x509Certificate_getSubjectDN_主体标识___:"+x509Certificate.getSubjectDN());
		System.out.println("x509Certificate_getSigAlgOID_证书算法OID字符串___:"+x509Certificate.getSigAlgOID());
		System.out.println("x509Certificate_getNotBefore_证书有效期___:"+x509Certificate.getNotAfter());
		System.out.println("x509Certificate_getSigAlgName_签名算法___:"+x509Certificate.getSigAlgName());
		System.out.println("x509Certificate_getVersion_版本号___:"+x509Certificate.getVersion());
		System.out.println("x509Certificate_getPublicKey_公钥___:"+x509Certificate.getPublicKey());
		return x509Certificate;
	}
	public static void main(String[] args) throws Exception {
		getX509CerCate("F:\\test\\test.cer");
	}		
}

//运行结果

java安全架构____读取.cer证书文件的信息_System

标签:java,System,____,cer,x509Certificate,println,___,out
From: https://blog.51cto.com/ratelcloud/7454369

相关文章

  • 列表和元组的概念和操作(1)
    通用序列列表元组字符串通用的序列操作索引:可以使用例如greeting='Hello'greeting[0]这种操作获取第一个元素切片:切片适用于提取序列中的一部分,例如number=[1,2,3,4,5,6]number[1:4],输出的结果为[2,3,4],第一个索引是包含的第一个元素的编号,但第二个索引是切片......
  • stm32f103移植lvgl
    这篇需做前期工作:https://www.cnblogs.com/njit-sam/p/17699205.htmlLVGL官方主页:https://lvgl.io/当你想快速上手时,点击这个:https://docs.lvgl.io/master/get-started/quick-overview.html这里,官方建议可以先在电脑上模拟,按照步骤一步步来就可以了,笔者选择的是CodeBlocks,配合......
  • 完美解决Server returned HTTP response code:403 for URL报错问题
    在调用某个接口的时候,突然就遇到了Server returned HTTP response code: 403 for URL报错这个报错,导致获取不到接口的数据,下面小编给大家分享解决Server returned HTTP response code:403 for URL报错问题,感兴趣的朋友一起看看吧 前言原因依赖post请求结语......
  • 关于小程序聊天框开发遇到的问题
    1.当输入框聚焦时,聊天框页面往上进行平移,导致页面难看解决:设置输入框input的这个属性为false2.设置上面为false时,定位在下面的输入框不进行上移解决:动态设置定位top值,设置获取焦点和失去焦点的方法//定位的样式:style="{'bottom':inputHeight+'px'}"//输入框的事件@focus......
  • reset | revert 使用场景:
    reset|revert使用场景:gitreset[commitId]||备注:此id对应修改会保留;reset后修改保留至本地,处于modified状态,若不提交,则服务器提交记录依然存在,若提交,可以将reset后的结果推送到服务器gitreset--hard[commitId]||备注:reset后本地所有修改均回退(注意是所有修......
  • IDEA 接口方法不能跳转到实体类实现方法的问题
    没有跳入到实体类实现方法的I+向下的箭头图标。极大可能是因为编辑器自带的代码高亮工具(Syntaxhighlighte)失效。解决方案第一种:清除缓存第二种:快捷键ctrl+alt+shift+h选择Syntax即可......
  • Docker - start postgres
        ......
  • 如何实现一个数据库的 UDF?图数据库 NebulaGraph UDF 功能背后的设计与思考
    大家好,我是来自BOSS直聘的赵俊南,主要负责安全方面的图存储相关工作。作为一个从v1.x用到v3.x版本的忠实用户,在见证NebulaGraph发展的同时,也和它一起成长。BOSS直聘和NebulaGraph关于NebulaGraph在BOSS直聘的应用场景,大家可以看看之前文洲老师的文章(图数据库NebulaGr......
  • Glang 数组的排序和查找:快速丶希尔丶堆丶选择丶冒泡...
    一.数组的排序与查找1//数组的排序和查找2functestArrSort(){3//内部排序:将需要处理的所有数据都加载到内部存储器中进行排序(交换式排序法、选择式排序法、插入式排序)45//交换式排序法-冒泡排序:递归将最大或最小值冒泡到数组尾6Bu......
  • day0-Python之路-编码之始-致那些年,我们依然没搞明白的编码
    本节内容编码回顾编码转换Python的bytes类型 编码回顾在备编码相关的课件时,在知乎上看到一段关于Python编码的回答 这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有一天它会猝不及防坑你一把。不过感觉这哥们的答案并没把编码问题写明白,所以只好......