Java使用X509Certificate获取证书详情

本文介绍了如何使用Java编程语言中的X509Certificate类获取和处理证书文件中的详细信息,包括版本、序列号、签名算法、颁发者和有效性等,并给出了代码示例。

Java使用X509Certificate获取证书详情

场景

​ 我们在进行加密相关项目的开发时会使用到各种证书,证书文件以.cer后缀结尾。双击打开后可以看到证书的详细信息,包括版本、序列号、签名算法、颁发者、使用者、有效期、公钥等信息。那么我们如何使用java程序获取相应的信息返回给前端展示呢?
在这里插入图片描述

证书的内容和意义如表所示:

证书内容 意义
Version 告诉这个X.509证书是哪个版本的,目前有v1、V2、v3
Serial Number 由证书分发机构设置证书的序列号
Signature Algorithm Identifier 证书采用什么样的签名算法
Issuer Name 证书发行者名,也就是给这个证书签名的机构名
Validity Period 证书有效时间范围
Subject Name 被证书发行机构签名后的公钥拥有者或实体的名字,采用X.500协议,在Internet上的标志是惟一的。例如:CN=Java,OU=Infosec,O=Infosec Lab,C=CN表示一个subject name。

最终效果

{
   
   
  "code": 200,
  "data": {
   
   
    "effDate": "2023-07-03 17:44:47",
    "serialNumber": "00a4cbbc64a19f000003",
    "issuerDN": "CN=1111, C=CN",
    "type": "EC",
    "expDate": "2024-07-02 17:44:47",
    "subjectDN": "CN=52000000121320000000_5200000012, O=123, O=00, L=123, L=123, C=CN",
    "sigAlgName": "SM3的SM2签名"
  },
  "msg": "成功"
}

代码实现

/**
     * 
     * @param fileName
     * @return 证书详情
     */
public Object getCert(String fileName){
   
   
        fileName =filePath+File.separator+fileName;
        JSONObject jsonObject = new JSONObject();
        CertificateFactory cf = null;
        X509Certificate cert = null;
        try {
   
   
            cf = CertificateFactory.getInstance("X.509");
            FileInputStream in = new FileInputStream(fileName);
            cert = (X509Certificate) cf.generateCertificate(in);
        } catch 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值