Статус: Новичок
Группы: Участники
Зарегистрирован: 23.05.2025(UTC) Сообщений: 2 
|
Добрый день. На нашем предприятии используется прокси с авторизацией negotiate. КриптоПро 5.0.1.13. При проверке подписи, cptools правильно определяет прокси, но авторизацию не использует. Вроде в составе дистрибутива есть curl, но попытки подсунуть .curlrc не помогли. Можно как-то заставить его авторизоваться текущим пользователем или хотя бы каким-то фиксированным, но только для cptools?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 02.11.2017(UTC) Сообщений: 65  Сказал «Спасибо»: 12 раз Поблагодарили: 28 раз в 25 постах
|
Здравствуйте.
Отвечу по порядку.
Правка .curlrc не поможет и не должна была помочь. Следует разделять две сущности: утилиту curl и библиотеку libcurl. Утилита использует библиотеку, поэтому если что-то влияет на библиотеку, то оно как правило влияет и на утилиту. Обратное неверно: в утилите есть масса своих наворотов, и насколько я нагуглил, это как раз такой случай. Файл .curlrc – это про утилиту, а не про библиотеку. Один пользователь в апстриме curl попросил сделать подобное для библиотеки, но сейчас это не сделано. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 02.11.2017(UTC) Сообщений: 65  Сказал «Спасибо»: 12 раз Поблагодарили: 28 раз в 25 постах
|
Наш код под капотом использует libcurl для многих сетевых обменов, в т.ч. вероятнее всего для тех, на которые вы хотели повлиять -- на сетевые обмены при построении и проверке цепочек сертификатов. Я же верно предположил? На libcurl можно повлиять, выставив переменные окружения (http_proxy, https_proxy и подобное). Там можно указать адрес прокси, порт, имя пользователя и пароль. Это ведь именно те параметры, которые вас интересовали? Это можно сделать в консоли перед запуском cptools или другой утилиты, возможно можно как-то вписать в ярлык для запуска cptools. Не очень удобно, действительно. Но дело в том, что обычно пользователям если и нужно задавать прокси, то сразу для всего профиля пользователя ОС. А если так, то выставление этих переменных можно вписать в системный файл инициализации сессии, как графической, так и консольной, чтобы у пользователя всегда была задана переменная с параметрами про прокси. И прокси будет прозрачно работать в CSP, curl и много где ещё -- на *nix в эти переменные окружения много кто смотрит. Если мне память не изменяет, я на Ubuntu даже где-то в графических настройках системы видел возможность задания глобального прокси для пользователя -- полагаю, именно через это оно и сделано. Или вы хотите только для CSP задать опцию? Замечу, что не только для cptools -- cptools сам по себе вообще не делает сетевых обменов, насколько я понимаю. Сетевые обмены делают низлежащие библиотеки CSP. У вас есть потребность именно на них повлиять, чтобы у них прокси был задан где-то, а у всех остальных программ нет? |
|
 1 пользователь поблагодарил Зубов Иван за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 02.11.2017(UTC) Сообщений: 65  Сказал «Спасибо»: 12 раз Поблагодарили: 28 раз в 25 постах
|
В будущих версиях добавим параметры в конфиг: Цитата:[Parameters] # строка с параметрами прокси CurlProxy="abc.ru:3128" # битовая маска настроек авторизации на прокси CurlProxyAuth=127 Задать можно через cpconfig: /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\Parameters' -add string CurlProxy 'a' /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\Parameters' -add long CurlProxyAuth 1 Подробнее о параметрах: https://curl.se/libcurl/c/CURLOPT_PROXY.htmlhttps://curl.se/libcurl/c/CURLOPT_PROXYAUTH.htmlhttps://curl.se/libcurl/c/CURLOPT_HTTPAUTH.htmlЗначения констант: Цитата:#define CURLAUTH_NONE ((unsigned long)0) #define CURLAUTH_BASIC (((unsigned long)1)<<0) #define CURLAUTH_DIGEST (((unsigned long)1)<<1) #define CURLAUTH_NEGOTIATE (((unsigned long)1)<<2) /* Deprecated since the advent of CURLAUTH_NEGOTIATE */ #define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE /* Used for CURLOPT_SOCKS5_AUTH to stay terminologically correct */ #define CURLAUTH_GSSAPI CURLAUTH_NEGOTIATE #define CURLAUTH_NTLM (((unsigned long)1)<<3) #define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4) #ifndef CURL_NO_OLDIES /* functionality removed since 8.8.0 */ #define CURLAUTH_NTLM_WB (((unsigned long)1)<<5) #endif #define CURLAUTH_BEARER (((unsigned long)1)<<6) #define CURLAUTH_AWS_SIGV4 (((unsigned long)1)<<7) #define CURLAUTH_ONLY (((unsigned long)1)<<31) #define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) #define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) Тикет для отслеживания: CPCSP-14702. Спасибо за жалобу! |
|
 2 пользователей поблагодарили Зубов Иван за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close