You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中从.RSA文件读取CA证书

从JAR签名的.RSA文件中读取证书并获取公钥

方法一:使用命令行工具

1. 直接查看证书信息(含公钥)

用JDK自带的keytool工具执行以下命令,直接输出证书的完整信息(包括公钥):

keytool -printcert -file your-sign-file.RSA

2. 提取证书到单独文件(可选)

如果需要将证书导出为通用的.cer文件,可使用openssl命令(需提前安装OpenSSL):

openssl pkcs7 -inform DER -in your-sign-file.RSA -print_certs -out extracted-cert.cer

导出的.cer文件可通过keytool或其他证书工具进一步处理。

方法二:用Java代码读取

如果需要在程序中自动提取证书和公钥,可通过Java安全API实现:

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

public class ExtractRSACert {
    public static void main(String[] args) throws Exception {
        // 替换为你的RSA文件路径
        String rsaFilePath = "your-sign-file.RSA";
        
        FileInputStream inputStream = new FileInputStream(rsaFilePath);
        CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
        
        // JAR签名的RSA文件是DER编码的PKCS7结构,直接解析即可获取证书
        X509Certificate cert = (X509Certificate) certFactory.generateCertificate(inputStream);
        inputStream.close();
        
        // 获取公钥
        PublicKey publicKey = cert.getPublicKey();
        
        // 输出相关信息
        System.out.println("证书主体: " + cert.getSubjectDN().getName());
        System.out.println("公钥算法: " + publicKey.getAlgorithm());
        System.out.println("公钥内容: " + publicKey);
    }
}

额外提示

若仅需验证JAR签名的有效性,无需手动提取公钥,直接使用jarsigner工具即可:

jarsigner -verify your-target.jar

返回jar verified则表示签名有效。

内容的提问来源于stack exchange,提问作者Nexon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 16:27:08