Добрый день! У меня вопрос:
Есть необходимость валидировать старые подписи. То есть подпись была сделана когда-то валидным сертификатом, потом срок годности истёк, но подпись то по идее и сейчас должна проходить проверку.
Делаю verify:
import ru.CryptoPro.CAdES.CAdESSignature;
import ru.CryptoPro.CAdES.CAdESSigner;
import java.security.cert.X509Certificate;
private CertificateDto checkSign(byte[] sign, byte[] data, boolean cryptoProCheck) throws Exception {
CAdESSignature signature = new CAdESSignature(sign, data, null);
CAdESSigner signer = signature.getCAdESSignerInfo(0);
final X509Certificate certificate = signer.getSignerCertificate();
try {
if (cryptoProCheck) {
signature.verify(Collections.emptySet(), Collections.emptySet());
}
} catch (Exception ex) {
......
}
Содержимое ошибки:
Error building certification path for CN="ИМЯ", SURNAME=ИМЯ, GIVENNAME=ИМЯ, C=RU, L=г Москва, STREET=г Москва, O="ИМЯ", T=Генеральный Директор, OID.1.2.643.100.1=#120D31313737373436373235393235, OID.1.2.643.3.131.1.1=#120C303037373331333736383132: ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target; error codes: [33] 'PKIX failure: invalid parameters of certificate'
Также если сделаю проверку [X509Certificate] certificate.checkValidity();
То получаю, что срок годности истек. java.security.cert.CertificateExpiredException: NotAfter: Fri Nov 01 12:09:28 MSK 2019
Если у машины меняю системное время на такое, чтобы серт стал валидным, то проверку verify прохожу.
Можно ли как то выполнить проверку так, чтобы она прошла успешно, игнорируя время?
Отредактировано пользователем 13 декабря 2019 г. 16:21:32(UTC)
| Причина: Не указана