Статус: Новичок
Группы: Участники
Зарегистрирован: 11.07.2024(UTC) Сообщений: 3 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Добрый день. Есть задача улучшить подписи CAdES-BES до CAdES-A, но есть нюанс, что в сертификатах этих подписей не указана ссылка на OCSP сервис. Поэтому, при улучшении мы получаем ошибку: Цитата:must have OCSP evidence but it doesn't contain any OCSP reference(s) or service(s) is(are) unavailable. OCSP evidence is not found Судя по документации, в метод усовершенствовании (enhance) можно передать CRL, что мы и попробовали сделать: Цитата: X509CRL crl = (X509CRL) CertificateFactory.getInstance("X.509").generateCRL(new FileInputStream(Configuration.CRL_FILENAME)); List<X509CRL> crlList = Collections.singletonList(crl); srcSigner = srcSigner.enhance(config.getProviderName(), digestAlgOID, chain, crlList, config.getTSAAddress(), CAdESType.CAdES_A, (AttributeTable)null);
Но ошибка не поменялась. Вопросы: 1. Можно ли в этом случаем заменить OCSP на CRL? это работает?) 2. Какие варианта решения можете посоветовать?
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,058 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 88 раз Поблагодарили: 229 раз в 216 постах
|
Добрый день!
1. нельзя. 2. найти или сделать самостоятельно OCSP сервер и использовать его адрес при enhance |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.07.2024(UTC) Сообщений: 3 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Автор: Санчир Момолдаев ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Добрый день!
1. нельзя. 2. найти или сделать самостоятельно OCSP сервер и использовать его адрес при enhance 2. А как его туда передать? Есть пример?
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,058 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 88 раз Поблагодарили: 229 раз в 216 постах
|
нужна актуальная версия СКЗИ https://www.cryptopro.ru...&m=145856#post145856> JCP 2.0.45041 / 2.0.45042-A Цитата:cades: добавлена возможность настроить доверие сертификату сторонней OCSP службы (JCP-2184) cades: добавлена возможность указать программно или в java-свойствах дополнительные адреса альтернативных источников доказательств - OCSP служб (JCP-2188)
соответственно нужно сеттать Options Код: public static Options setSingleOcsp(Options options) {
return options.setRevocationURLStrategy(
new SingleRevocationURLStrategy() {
@Override
public RevocationURL get(ValidatingData validatingData) throws AdESException {
return new RevocationURL() {
@Override
public ConnectionParameters getConnectionParameters() {
return null;
}
@Override
public RevocationURLActionOnError onError(Throwable throwable) {
return null;
}
@Override
public String get() {
return OCSP;
}
};
}
}
);
}
public static Options setAuthorizedOCSPs(Options options, String[] thumbs) {
return options.setRevocationPermissions(new RevocationPermission() {
@Override
public boolean isAuthorizedIssuer(ValidatingPermissionData validatingPermissionData) {
X509Certificate cert = validatingPermissionData.getValidatingRevocationData().getCertificate();
try {
MessageDigest digest = MessageDigest.getInstance("SHA-1");
digest.update(cert.getEncoded());
String thumb = bytesToHex(digest.digest());
boolean result = false;
for (String walk : thumbs)
if (thumb.equalsIgnoreCase(walk)) {
result = true;
break;
}
return result;
} catch (NoSuchAlgorithmException | CertificateEncodingException e) {
throw new RuntimeException(e);
}
}
});
}
public static Options setOcspList(Options options) {
return options.setRevocationURLStrategy(new CollectionRevocationURLStrategy() {
@Override
public RevocationURLCollection get(ValidatingData validatingData) throws AdESException {
return new RevocationURLCollection() {
@Override
public Collection<RevocationURL> get() {
return Collections.singleton(
new RevocationURL() {
@Override
public ConnectionParameters getConnectionParameters() {
return null;
}
@Override
public RevocationURLActionOnError onError(Throwable throwable) {
return null;
}
@Override
public String get() {
return OCSP;
}
}
);
}
};
}
});
}
javadoc https://docs.cryptopro.r...javadoc/CAdES/index.htmlлибо через проперти. Код:System.setProperty("ru.CryptoPro.AdES.ocsp.responderURL", "http://.../ocsp.srf");
System.setProperty("ru.CryptoPro.AdES.ocsp.responderCertIssuerName", "CN = CadesTest PKI 2012 Root,OU = Cades Testing,O = OOO Crypto-Pro,C = RU");
их же можно задать через -D но приоритет тут у AIA. т.е. через проперти будет медленнее. через код более гибкая настройка Отредактировано пользователем 11 июля 2024 г. 17:36:15(UTC)
| Причина: Не указана |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.07.2024(UTC) Сообщений: 3 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Здравствуйте, подскажите, если идти по пути настройки через Options, правильно ли я понимаю, что:
- параметр OCSP == responderUR (указывается URL OCSP)
- параметр String[] thumbs== responderCertIssuerName(указывается сертификат)?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close