我们的用例需要在 PKIX 设置上通过 OCSP 验证证书吊销。我的出发点是这个相关问题的代码:OCSP Revocation on client certificate
我是在应用程序级别手动执行的,因为 tomcat 不支持它。但是,我在构建 certPath 时遇到了一些麻烦,我认为我缺少一些基本的理解。
首先,我尝试为传入的客户端 x509Certificate 创建 certPath。
KeyStore 存储已正确初始化,并且仅包含与客户端 x509Certificate 匹配的根证书。
编辑:添加中间证书后我也得到了相同的结果。
X509CertSelector certSelector = new X509CertSelector();
certSelector.setSubject(x509certificate.getSubjectX500Principal());
PKIXParameters params = new PKIXBuilderParameters(store,certSelector);
CertPathBuilder cpb = CertPathBuilder.getInstance(CertPathBuilder.getDefaultType());
CertPath certPath = cpb.build(params).getCertPath();
但是,我在运行时遇到错误:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
可能缺少什么?