Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Cynepnaxa  
#1 Оставлено : 17 апреля 2019 г. 10:32:50(UTC)
Cynepnaxa

Статус: Активный участник

Группы: Участники
Зарегистрирован: 04.04.2008(UTC)
Сообщений: 43
Откуда: Новосибирск

Добрый день!
Наше ПО внезапно начало выдавать ошибку проверки сертификата при подписи

For online validation by CRLDP parameter 'com.sun.security.enableCRLDP' (Oracle) or 'com.ibm.security.enableCRLDP' (IBM) must be set 'true' to enable or 'ocsp.enable' must be set 'true' (OCSP), or CRL passed for offline validation

подпись Cades-BES, раньше работало с параметрами com.ibm.security.enableCRLDP=com.sun.security.enableCRLDP=true
По идее в подписи используется наш сертификат, зачем его проверять? С другой стороны, sign идёт несколько секунд до того как ошибку выдать. Возмоно куда-то обращается по сети, но в логах ничего нет. Как можно добавить в логирование

Пробовал указать false в параметрах

com.sun.net.ssl.checkRevocation
com.sun.security.enableCRLDP
com.ibm.security.enableCRLDP
ru.CryptoPro.reprov.enableCRLDP
ocsp.enable

не помогло. Подскажите пожалуйста в чем может быть проблема? jcp-2.0.40035 Прикладываю цепочку сертификатов shulgaComplete.p7b (6kb) загружен 9 раз(а).
Offline Александр Лавник  
#2 Оставлено : 17 апреля 2019 г. 10:41:16(UTC)
Александр Лавник

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 30.06.2016(UTC)
Сообщений: 3,383
Мужчина
Российская Федерация

Сказал «Спасибо»: 53 раз
Поблагодарили: 776 раз в 718 постах
Автор: Cynepnaxa Перейти к цитате
Добрый день!
Наше ПО внезапно начало выдавать ошибку проверки сертификата при подписи

For online validation by CRLDP parameter 'com.sun.security.enableCRLDP' (Oracle) or 'com.ibm.security.enableCRLDP' (IBM) must be set 'true' to enable or 'ocsp.enable' must be set 'true' (OCSP), or CRL passed for offline validation

подпись Cades-BES, раньше работало с параметрами com.ibm.security.enableCRLDP=com.sun.security.enableCRLDP=true
По идее в подписи используется наш сертификат, зачем его проверять? С другой стороны, sign идёт несколько секунд до того как ошибку выдать. Возмоно куда-то обращается по сети, но в логах ничего нет. Как можно добавить в логирование

Пробовал указать false в параметрах

com.sun.net.ssl.checkRevocation
com.sun.security.enableCRLDP
com.ibm.security.enableCRLDP
ru.CryptoPro.reprov.enableCRLDP
ocsp.enable

не помогло. Подскажите пожалуйста в чем может быть проблема? jcp-2.0.40035 Прикладываю цепочку сертификатов shulgaComplete.p7b (6kb) загружен 9 раз(а).

Здравствуйте.

Ссылки на CRL (раз, два) в конечном сертификате указывают на просроченный CRL.
Техническую поддержку оказываем тут
Наша база знаний
Offline Cynepnaxa  
#3 Оставлено : 17 апреля 2019 г. 12:56:59(UTC)
Cynepnaxa

Статус: Активный участник

Группы: Участники
Зарегистрирован: 04.04.2008(UTC)
Сообщений: 43
Откуда: Новосибирск

Смотрю по этим ссылкам crl с 10 апреля 2019 по 9 апреля 2020. В списке отозванных нашего сертификата не нашел. Уточните пожалуйста, что просрочено?
Offline Александр Лавник  
#4 Оставлено : 17 апреля 2019 г. 12:58:48(UTC)
Александр Лавник

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 30.06.2016(UTC)
Сообщений: 3,383
Мужчина
Российская Федерация

Сказал «Спасибо»: 53 раз
Поблагодарили: 776 раз в 718 постах
Автор: Cynepnaxa Перейти к цитате
Смотрю по этим ссылкам crl с 10 апреля 2019 по 9 апреля 2020. В списке отозванных нашего сертификата не нашел. Уточните пожалуйста, что просрочено?

Да, Вы правы, CRL даже очень длинные.

Моя ошибка.
Техническую поддержку оказываем тут
Наша база знаний
Offline Cynepnaxa  
#5 Оставлено : 17 апреля 2019 г. 13:24:29(UTC)
Cynepnaxa

Статус: Активный участник

Группы: Участники
Зарегистрирован: 04.04.2008(UTC)
Сообщений: 43
Откуда: Новосибирск

А почему может такую ошибку выдавать? У нас подпись как в примерах делается. Раньше всё работало (29 марта точно).
Код:
  CAdESSignature signature = new CAdESSignature(detached);
                signature.addSigner(
                        JCP.PROVIDER_NAME, properties.getHashAlgorithm(), properties.getKeyAlgorithm(),
                        privateKey, certificateChain, properties.getSignatureType(), null, false
                );
                signature.setCertificateStore(certificateCollection);


Как правильно выставить параметры на которые ругается
com.sun.net.ssl.checkRevocation
com.sun.security.enableCRLDP
com.ibm.security.enableCRLDP
ru.CryptoPro.reprov.enableCRLDP
ocsp.enable
Пробовал через System.setProperties и Security.setProperties в false и true и проверял на момент создания подписи - свойства устанавливаются корректно, но ошибка стабильна.
Offline Евгений Афанасьев  
#6 Оставлено : 17 апреля 2019 г. 14:46:09(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,924
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 690 раз в 651 постах
Здравствуйте.
Какого типа создается подпись - BES, T, X Long Type 1?
CRL доступны для скачивания?
Включите логирование для JCPLogger уровня FINE, должны появиться дополнительные логи и информация о скачивании.

Параметры *enableCRLDP не включают/отключают проверку, а определяют, где будет браться CRL: будет скачан по ссылке в CRLDP сертификата или будет передан самим пользователем (из файла).

P.S. Проверил создание CAdES-BES + приложенные сертификаты - цепочка успешно проверилась.

Отредактировано пользователем 17 апреля 2019 г. 14:49:54(UTC)  | Причина: Не указана

Offline Cynepnaxa  
#7 Оставлено : 17 апреля 2019 г. 16:05:18(UTC)
Cynepnaxa

Статус: Активный участник

Группы: Участники
Зарегистрирован: 04.04.2008(UTC)
Сообщений: 43
Откуда: Новосибирск

Подпись Cades-BES. Подскажите пожалуйста, а у вас какая версия Java, JCP и как установлены параметры связанные с проверкой CRL? JCP установлен в Java? И если можно код скопируйте пожалуйста, который у вас сработал. Получается можно без ключа инициировать проверку цепочки в подписи?

Отредактировано пользователем 17 апреля 2019 г. 16:06:08(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#8 Оставлено : 17 апреля 2019 г. 16:35:31(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,924
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 690 раз в 651 постах
Автор: Cynepnaxa Перейти к цитате
Подпись Cades-BES. Подскажите пожалуйста, а у вас какая версия Java, JCP и как установлены параметры связанные с проверкой CRL? JCP установлен в Java? И если можно код скопируйте пожалуйста, который у вас сработал. Получается можно без ключа инициировать проверку цепочки в подписи?



Автор: Cynepnaxa Перейти к цитате
какая версия Java, JCP

java 1.8.0_112, jcp из последних с сайта (40...).

Автор: Cynepnaxa Перейти к цитате

как установлены параметры связанные с проверкой CRL?

System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");

То есть предполагается, что будет обращение в сеть за CRL. Если сделать эти параметры false, то CRL над подать в addSigner или verify, в зависимости от задачи.

Автор: Cynepnaxa Перейти к цитате

JCP установлен в Java?

Да, версия 2.0 для java 7-8.

Автор: Cynepnaxa Перейти к цитате

И если можно код скопируйте пожалуйста, который у вас сработал. Получается можно без ключа инициировать проверку цепочки в подписи?


Я закомментировал проверку соответствия ключей, чтобы можно было подать вашу цепочку и неподходящий ей закрытый ключ.
Пример стандартный:
Код:

System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");

KeyStore keyStore = KeyStore.getInstance("HDImageStore");
keyStore.load(null, null);

PrivateKey pk = (PrivateKey) keyStore.getKey("key", "password".toCharArray());
CertificateFactory newfactory = CertificateFactory.getInstance("X.509");

X509Certificate client = (X509Certificate) newfactory.generateCertificate(new FileInputStream("client.cer"));
X509Certificate ca1 = (X509Certificate) newfactory.generateCertificate(new FileInputStream("ca1.cer"));
// Корневой установлен в cacerts

List<X509Certificate> certs = new ArrayList<X509Certificate>();
certs.add(client);
certs.add(ca1);

CAdESSignature cAdESSignature = new CAdESSignature(false);
cAdESSignature.addSigner(JCP.PROVIDER_NAME, null, null, pk, certs, CAdESType.CAdES_BES, null, false);

ByteArrayOutputStream out = new ByteArrayOutputStream();
cAdESSignature.open(out);

cAdESSignature.update("test".getBytes());
cAdESSignature.close();

out.close();


Лог JCPLogger после включения (FINE) что-нибудь показывает?
Offline Cynepnaxa  
#9 Оставлено : 17 апреля 2019 г. 17:55:20(UTC)
Cynepnaxa

Статус: Активный участник

Группы: Участники
Зарегистрирован: 04.04.2008(UTC)
Сообщений: 43
Откуда: Новосибирск

Включил отладку - заработало :) Цепочка проверяется. Отключил отладку обратно - тоже работает. Странно.
Offline Евгений Афанасьев  
#10 Оставлено : 17 апреля 2019 г. 19:30:48(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,924
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 690 раз в 651 постах
Очень необычно)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.