我需要对给定的X509证书执行链验证和吊销检查。因此,我浏览了this guide,还探索了JavaDoc for
CertPathValidator
和CertPathBuilder API以及github存储库中的示例。
毕竟,我有点困惑,因为我看不到CertPathValidator
和CertPathBuilder
类之间的明显区别。 Java文档说:
CertPathValidator
用于验证证书路径的类(也称为证书链)
CertPathBuilder
用于构建认证路径的类(也称为证书链)。
这两个类都支持吊销检查和几乎相同的方法。因此,我的问题是,在每种情况下应使用每个类,什么是验证证书而不是构建?
最佳答案
当您拥有证书的阵列/列表/等并且要检查它们是否为证书路径时,请使用CertPathValidator
。
当您没有可能是认证路径的阵列/列表/等时,请使用CertPathBuilder
,但除了要验证的证书之外,您还可以: