java - Java验证PEM格式证书的方法

标签 java certificate pem

我有 PEM 格式的文件,如何在 Java 中验证签名,正如我所关注的 http://download.oracle.com/javase/tutorial/security/apisign/versig.html但是发现Java不支持PEM

最佳答案

您可以使用 BouncyCastle 读取 PEM 文件中的证书的 PEMReader。如果内容是 X.509 证书,您应该获取 X509Certificate 的实例并根据需要从那里验证它。

编辑:代码应该是这样的(未尝试):

// The key with which you want to verify the cert.
// This is probably a CA certificate's public key.
PublicKey publicKey = ...;

PEMReader reader = new PEMReader(new FileReader("/path/to/file.pem"));
Object pemObject = reader.readObject();
if (pemObject instanceof X509Certificate) {
    X509Certificate cert = (X509Certificate)pemObject;
    cert.checkValidity(); // to check it's valid in time
    cert.verify(publicKey); // verify the sig. using the issuer's public key
}

(当然,与任何 I/O 操作一样,您可能需要使用 try/finally 关闭读取器。)

请注意,checkValidityverify 不会返回任何内容:相反,如果失败,它们会抛出异常。

关于java - Java验证PEM格式证书的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6342343/

相关文章:

java - 如何在 java android 中运行进度条时禁用正在运行的 Activity

android - 无法在 Android Oreo 上安装 CA 证书

java - PEM 到私钥

python-requests - Python 请求无法通过(转换后的)客户端证书获得成功响应

java - 格式化循环输出

java - 为什么 junit 测试在 eclipse 中失败但从 ant 中通过?

asp.net - 下载 IIS 和 IISExpress 以及 ISAPI 模块中的 CER 文件

ssh - 如何更改 EC2 公钥?

java - 线程中出现错误并且未显示我的 toast

java - 使用 Java 访问 Windows 本地计算机个人 keystore (SunMSCAPI)