1

我有一个用 Base64 编码的证书 ----- BEGIN CERTIFICATE ----- MIIGezCCBWOgAwIBA ....,如何从中获取出现在证书路径中的根证书和中间证书!

4

1 回答 1

0

我以前也有同样的问题。您会看到,证书有一个 Issuer 字段,其中包含颁发者的主题。
您可以比较它,或者/并且您可以测试签名。只有 CA 可以验证证书的签名。
像这样的东西:

//load all the ca certificates and get their public keys
caCertificate.getIssuerDN().equals(caCertificate[i].getSubjectDN());
// OR/AND

try {
   verifySignature(certificate,
        caCertificate[i].getPublicKey());
    //issuer found
}
catch (Exception e) {
    // not the issuer
}

我没有测试代码,但你明白了。

编辑:

java中有一些专门用于验证链的类。其中之一是CertPathBuilder类。我还在研究如何使用它。我总是用错误的参数创建它,我想......

编辑2:

我正在使用受此启发的东西

祝你好运

于 2012-02-17T20:52:00.363 回答