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