如何在Java中验证PEM格式证书

如何在Java中验证PEM格式证书,java,certificate,pem,Java,Certificate,Pem,我有一个PEM格式的文件,如何在Java中验证签名,正如我所遵循的,但发现Java不支持PEM您可以使用的PEMReader读取PEM文件中的证书。如果内容是X.509证书,则应获取X509Certificate的实例,并根据需要进行验证 编辑:以下是代码的外观(未尝试): (当然,与任何I/O操作一样,您可能需要使用try/finally关闭读卡器。) 请注意,checkValidity和verify不会返回任何内容:相反,如果失败,它们会抛出异常。由于我对Java非常陌生,请允许我使用某种代

我有一个PEM格式的文件,如何在Java中验证签名,正如我所遵循的,但发现Java不支持PEM

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

编辑:以下是代码的外观(未尝试):

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


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

由于我对Java非常陌生,请允许我使用某种代码片段。
// 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
}