【发布时间】:2019-04-10 18:56:21
【问题描述】:
我需要获取吊销日期只是为了将其与签名验证框架中的签名时间进行比较。下一个代码,使用 CertPathValidator java 类,允许我验证证书链,但如果链中有任何证书被撤销,它会抛出异常。
private boolean validateChain(List<X509Certificate> certificates) {
PKIXParameters params;
CertPath certPath;
CertPathValidator certPathValidator;
Boolean valid = Boolean.FALSE;
params = new PKIXParameters(keyStore);
params.setRevocationEnabled(true);
Security.setProperty("ocsp.enable", "true");
certPath = cf.generateCertPath(certificates);
certPathValidator = CertPathValidator.getInstance("PKIX");
PKIXCertPathValidatorResult result = (PKIXCertPathValidatorResult)
certPathValidator.validate(certPath, params);
if(null != result) {
valid = Boolean.TRUE;
}
return valid;
}
我需要一些方法来检查链中是否有一些证书被吊销,而不会引发异常并停止验证过程。此外,我需要获得撤销日期,因为最后的代码不允许这样做。 我需要一个非专有的解决方案,因为我已经知道 Sun 类 OCSP http://www.docjar.com/html/api/sun/security/provider/certpath/OCSP.java.html
【问题讨论】:
-
您可以尝试使用 Bouncy Castle 库:stackoverflow.com/questions/26843654/…
标签: java certificate signature