Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Проблема с CertGetCertificateChain и проверкой сертификата
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.10.2010(UTC) Сообщений: 47 Сказал(а) «Спасибо»: 11 раз
|
Доброго времени суток. CSP 3.6r4 под Ubuntu 14.04, сертификат выдан тестовым УЦ. Строю цепочку с помощью CertGetCertificateChain. В CERT_CHAIN_PARA выставлен таймаут dwUrlRetrievalTimeout в 60000 мс. Но в логе сразу появляется: Код:
May 5 17:13:51 xvega cprdr[18339]: capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: -2146893792 URL: http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt).
При заходе браузером по этой ссылке, скачивается сертификат, так что ссылка рабочая. Гугленье по этому коду ничего не дало. Подскажите, куда дальше копать?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.10.2010(UTC) Сообщений: 47 Сказал(а) «Спасибо»: 11 раз
|
Разобрался сам. Помогло выполнение Код:
cpconfig -ini \\config\\apppath -add string libcurl.so /usr/lib/x86_64-linux-gnu/libcurl.so.4
При чем, в официальной документации "ЖТЯИ.00050-03 90 02-02. СКЗИ " КриптоПро CSP " . Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux" есть ошибка, не экранируется символ "\" в строчке конфигурирования libcurl. Из за этого и возникла проблема. Кстати, интересно, почему такое default значение используется: /usr/local/lib/64/libcurl.so? Может тогда лучше устанавливать под linux свою версию libcurl в обязательном порядке, раз уж она все равно есть, и умолчание сразу нее ставить? Отредактировано пользователем 6 мая 2015 г. 8:13:41(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.04.2012(UTC) Сообщений: 11 Сказал(а) «Спасибо»: 5 раз
|
Здравствуйте! У меня ситуация аналогичная этой: Автор: vega Доброго времени суток. CSP 3.6r4 под Ubuntu 14.04, сертификат выдан тестовым УЦ. Строю цепочку с помощью CertGetCertificateChain. В CERT_CHAIN_PARA выставлен таймаут dwUrlRetrievalTimeout в 60000 мс. Но в логе сразу появляется: Код:
May 5 17:13:51 xvega cprdr[18339]: capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: -2146893792 URL: http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt).
При заходе браузером по этой ссылке, скачивается сертификат, так что ссылка рабочая. Гугленье по этому коду ничего не дало. Подскажите, куда дальше копать? только проверка сертфиката проходит в консоли с помощью cryptcp -verify. При этом в логе такие ошибки: Код:4558 Aug 22 12:16:09 server cpcsp[17529]: capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: 12030 URL: http://cr-serv.ru/uploads/cscrl.crl).
4559 Aug 22 12:16:09 server cpcsp[17529]: capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: 0 URL: http://cr-serv.info/cscrl.crl).
4560 Aug 22 12:16:12 server cpcsp[17529]: capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: 12030 URL: http://cr-serv.ru/uploads/cscrl.crl).
4561 Aug 22 12:16:12 server cpcsp[17529]: capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: 0 URL: http://cr-serv.info/cscrl.crl).
4562 Aug 22 12:16:12 server cpcsp[17529]: capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: 12030 URL: http://cr-serv.ru/uploads/csroot.cer).
В браузере все ссылки доступны. Curl также способен скачать СОС'ы: Код:[user@server ~]$ curl -O http://cr-serv.ru/uploads/cscrl.crl
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2038 100 2038 0 0 8869 0 --:--:-- --:--:-- --:--:-- 8899
Код:[user@server ~]$ curl -O http://cr-serv.info/cscrl.crl
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2038 100 2038 0 0 11256 0 --:--:-- --:--:-- --:--:-- 11322
Скажите, пожалуйста, как можно увеличить таймаут скачивания СОС для CryptoPro под Linux и можно ли это сделать в файле /etc/opt/cprocsp/config64.ini?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,456
Сказал(а) «Спасибо»: 40 раз Поблагодарили: 582 раз в 405 постах
|
Здравствуйте. Выставление таймаута по умолчанию в нашем коде не предусмотрено - для него выбрано типовое значение для ожидания в сети - 30 секунд. Но как упоминалось в обсуждении, ошибки CryptRetrieveObjectByUrl связаны не с таймаутом, а с правильной регистрацией библиотеки libcurl.so в наших конфигурационных файлах. Так как в общем случае задача выбора правильной библиотеки libcurl решения не имеет (с учётом произвола в расположении пользовательских библиотек и наличия конфигураций с двумя платформами), то при установке провайдер использует усреднённую по нашей статистике регистрацию. Администратор же в соответствии с документацией должен указать правильный путь к libcurl.so в конфигурационном файле. Для упрощения жизни начиная с КриптоПро CSP 3.9 установка пакета cprocsp-curl включена по умолчанию в инсталляционный скрипт (install.sh) на всех *nix. Это избавляет от необходимости настройки пути к libcurl.so, так как путь к нашей реализации этой библиотеки прописывается установщиком её пакета. Для КриптоПро CSP 3.6r4 также можно рекомендовать устанавливать пакет cprocsp-curl. |
|
1 пользователь поблагодарил Русев Андрей за этот пост.
|
Alexw оставлено 24.08.2016(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.04.2012(UTC) Сообщений: 11 Сказал(а) «Спасибо»: 5 раз
|
Регистрацией библиотеки libcurl.so в конфигурационных файлах cryptopro произведена правильно, подобно описанному здесь выше, в основном все crl обрабатываются корректно и ошибок типа Код:capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: 12030 ...)
никогда не возникало, за исключением обработки этих CDP: Код:[1]Точка распределения списка отзыва (CRL)
Имя точки распространения:
Полное имя:
URL=http://cr-serv.ru/uploads/cscrl.crl
[2]Точка распределения списка отзыва (CRL)
Имя точки распространения:
Полное имя:
URL=http://cr-serv.info/cscrl.crl
Как Вы сказали, иногда Автор: olin ошибки CryptRetrieveObjectByUrl связаны не с таймаутом. . Возможен ли такой вариант, когда на web-сервере cr-serv.ru или cr-serv.info могут быть произведены такие настройки (некорректные заголовки сервера, например), что CRL скачивается в браузере, а cryptcp при помощи curl не может скачать crl с обоих серверов? Кстати, почему при работе с таким сертификатом в логе появляется такая запись, связанная не с CDP, а AIA: Код:server cpcsp[17529]: capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: 12030 URL: http://cr-serv.ru/uploads/csroot.cer).
Отредактировано пользователем 24 августа 2016 г. 12:28:21(UTC)
| Причина: Дополнение
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.09.2016(UTC) Сообщений: 2 Откуда: SPB
|
Здравствуйте. Путем бесчеловечных опытов, проблема с неполучением СОС была найдена, выкладываю способ решения для тех, кто болеет тем же. Симптомы:Выяснилось, что при отправке запроса в http-заголовке в качестве юзерагента указывается некий <UrlRetrieved {Mozilla MSIE 6 Win 2000}>, что вводит некоторые http-сервера, обычно shared-хостинга, в ступор, и они либо отказываюся разговаривать, либо отдают 404. В логах это обычно выглядит как: capi20: CryptRetrieveObjectByUrlA () UrlRetriever failed (CURLcode: 12030 URL: http://cr-serv.ru/uploads/cscrl.crl)., хотя по указанному урлу и wget'ом, и curl'ом штатным и из комплекта все ходится и забирается. Из пойманных на таком поведении оказались cr-serv.info cr-serv.ru www.tax23.ru mascom-dv.ru cert.vrbp.ru cdp.ncarf.ru Лечение:Божьей милостью, сия загогулина была найдена в /opt/cprocsp/lib/amd64/liburlretrieve.so в открытом виде, и заменена на человеческий <Mozilla/4.0 (compatible; MSIE 6.0; ) >,(3 пробела в конце, чтобы совпадала длина и не было ошибки сегментирования), и проблема решилась. Далее нужно удалить /etc/cron.daily/cprocsp, а то пищит, что в файлах поковырялись злобные хакеры, и переименовывает liburlretrieve.so CSP v4.0.9758 (Ostrogradsky) x64, 3.6.7777 (Rambutan) x64 болеет тем же. Господа, поправите к следующему релизу ? Отредактировано пользователем 21 сентября 2016 г. 15:52:18(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,456
Сказал(а) «Спасибо»: 40 раз Поблагодарили: 582 раз в 405 постах
|
Спасибо за подробный разбор проблемы. Мы тоже её исправляли в "2016-07-12 КриптоПро CSP 4.0.9758 Ostrogradsky": Цитата:* core: Устранена нерегулярная ошибка скачивания файлов в UrlRetriever'e (CPCSP-6377).
Но выбрали user-agent иначе, чем у вас (нас удерживала поддержка старых MSCA). Можете дать полные ссылки на CRL-и, которые не удалось скачать. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.09.2016(UTC) Сообщений: 2 Откуда: SPB
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,456
Сказал(а) «Спасибо»: 40 раз Поблагодарили: 582 раз в 405 постах
|
С нашим новым user-agent-ом все ссылки успешно скачиваются (начиная с КриптоПро CSP 4.0.9758 Ostrogradsky). |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 14.07.2008(UTC) Сообщений: 1,287 Откуда: Краснодар Сказал «Спасибо»: 81 раз Поблагодарили: 72 раз в 60 постах
|
А со "старым" user-agent-ом? Тестили?
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Проблема с CertGetCertificateChain и проверкой сертификата
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close