CertPathValidator和CertPathBuilder在概念上有什么区别?

时间:2019-07-25 21:11:55

标签: java ssl cryptography pkix

我需要对给定的X509证书执行链验证和吊销检查。因此,我经历了this guide,还探索了JavaDoc for CertPathValidatorCertPathBuilder API以及 github 存储库中的示例。

毕竟,我有点困惑,因为我看不到CertPathValidatorCertPathBuilder类之间的明显区别。 Java文档说:

CertPathValidator

  

用于验证证书路径的类(也称为证书链)

CertPathBuilder

  

用于构建认证路径的类(也称为证书链)。

两个类都支持吊销检查和几乎相同的方法。因此,我的问题是,在每种情况下应使用每个类,什么是验证证书而不是构建?

1 个答案:

答案 0 :(得分:1)

当拥有证书的阵列/列表/等并且要检查它们是否为认证路径时,请使用CertPathValidator

在没有可能用作认证路径的阵列/列表/等文件时,请使用CertPathBuilder,但是除了要验证的证书之外,您还可以:

  • 一组零个或多个中间证书。其中一些可能不是路径的一部分。
  • 一组一个或多个受信任的证书。