我有一个用Base64编码的证书----- BEGIN 证书 - - - MIIGezCCBWOgAwIBA ....,如何获取证书路径中出现的根证书和中间证书!
答案 0 :(得分: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:
我正在使用受this启发的内容。
祝你好运