我有一个用 Base64 编码的证书 ----- BEGIN CERTIFICATE ----- MIIGezCCBWOgAwIBA ....,如何从中获取出现在证书路径中的根证书和中间证书!
问问题
2052 次
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 回答