获得证书';Java中签名验证的s撤销时间
我需要得到撤销日期,以便与签名验证框架中的签名时间进行比较。下一个代码,使用CertPathValidator java类,允许我验证证书链,但如果链中有任何证书被吊销,它会引发异常获得证书';Java中签名验证的s撤销时间,java,certificate,signature,Java,Certificate,Signature,我需要得到撤销日期,以便与签名验证框架中的签名时间进行比较。下一个代码,使用CertPathValidator java类,允许我验证证书链,但如果链中有任何证书被吊销,它会引发异常 private boolean validateChain(List<X509Certificate> certificates) { PKIXParameters params; CertPath certPath; CertPathValidator certPathValidator; B
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;
}
private boolean validateChain(列出证书){
PKIXParameters参数;
CertPath-CertPath;
CertPathValidator CertPathValidator;
Boolean valid=Boolean.FALSE;
params=新的PKIXParameters(密钥库);
参数setRevocationEnabled(true);
Security.setProperty(“ocsp.enable”、“true”);
certPath=cf.generateCertPath(证书);
certPathValidator=certPathValidator.getInstance(“PKIX”);
PKIXCertPathValidatorResult=(PKIXCertPathValidatorResult)
验证(certPath,params);
if(null!=结果){
valid=Boolean.TRUE;
}
返回有效;
}
我需要一些方法来检查链中是否存在被吊销的证书,而不引发异常并停止验证过程。此外,我需要得到撤销的日期,因为最后的代码不允许它。
我需要一个非专有的解决方案,因为我已经知道Sun类OCSP,最后我找到了一个解决方案。可以确定路径有效性作为参数的日期。我无法恢复每个证书的吊销日期,但添加了以下行:
params.setDate(signingDate)
此时将检查CertPath的有效性您可以尝试使用Bouncy Castle库: