获取证书链

2024-05-09

我正在 Java 中使用 X509 证书。给定一个证书,是否可以在签名层次结构中找到所有其他证书,直到找到根证书?

我有一个证书文件(带有.cer扩展名),我想提取父签名证书。我想继续查找该证书的父证书,直到获得最终的自签名根证书。

我已经检查了X509Certificate证书API和相关APIjava.security.cert但找不到任何有用的东西。


这并不难 - 假设您已经以某种方式/带外获得了一个或多个钥匙串中的所有中间证书和根证书。

看一下

http://codeautomate.org/blog/2012/02/certificate-validation-using-java/

的代码片段就可以做到这一点。密钥位位于 validate KeyChain() 中,基本上由以下部分组成

   cert = cert-to-validate
   while(not self signed) {
       extract issuer from cert
       scan keychain(s) to find cert with a subject equal to the issuer
       if none found - error
       check if the signature is correct.
       cert = issuers_cert
   }
   if not at the top/root - error

As to how您获得中间/根证书 - 这是一个不同的问题。请注意,这段代码有点天真 - 并且不太理解交叉签名。不过,java pkix 会调用 - BouncyCastle 有一个示例。

您通常可以将根证书构建到密钥链中;但中间证书通常需要更动态地“收集”或发现。这通常需要在 TLS 或类似过程中查询 SSL 堆栈。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取证书链 的相关文章

随机推荐