gpt4 book ai didi

java - Java中获取签名验证的证书吊销时间

转载 作者:行者123 更新时间:2023-11-30 06:16:49 24 4
gpt4 key购买 nike

我需要获取撤销日期只是为了将其与签名验证框架中的签名时间进行比较。下一个代码使用 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

最佳答案

最后我找到了解决方法。可以确定应确定路径有效性的日期作为参数。我无法恢复每个证书的吊销日期,但添加以下行:

params.setDate(signingDate)

此时检查CertPath的有效性

关于java - Java中获取签名验证的证书吊销时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49018840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com