Учетные данные LibCurl HTTPS, внутренняя обработка последовательности? - PullRequest
0 голосов
/ 01 марта 2011

надеюсь, кто-нибудь ответит мне за это, когда я бью головой об стену.Я использую LibCurl, чтобы сделать простую запись файла на URL HTTPS.В целом, это работает, однако, связываясь с сайтом, получающим сообщение, у них, очевидно, проблема решена, и я просто не понимаю.

Видимо, я готовлю свой запрос, ставлю URL, предоставляю ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ для сайта.Затем сообщение включает в себя CURL_FORMADD (для параметров для добавления отдельного вложения файла через многоэлементную форму).

У меня были проблемы при разработке CURLOPT_SSL_VERIFYPEER и CURLOPT_SSL_VERIFYHOST и, наконец, он работал со следующими настройками.

curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false );
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 1);

Вот проблема.Видимо, когда я запускаю curl_easy_perform (), он пытается отправить запрос, ответ возвращается и говорит ... отправьте мне информацию о сертификате, а затем, очевидно, повторно отправите весь пакет с информацией о сертификате.И затем принимается сервером, на который я отправляю.

Итак, как я могу сказать LibCurl, чтобы он отправлял ВСЕ ... учетные данные пользователя, пароля и сертификата, так что сервер, на который я отправляю, не работает?Не отклоняйте первый запрос только для получения учетных данных в последующем цикле.

Спасибо.

---- РЕДАКТИРОВАНИЕ через обратную связь.

При рассмотрении большего, как упомянутоЭуген ...

Я отключил "CURLOPT_SSL_VERIFYPEER" из других показаний, которые при этом могут открыть транзакцию до компромисса "человек посередине".Я не хочу этогоНаходя метод аутентификации, это BASIC, поэтому, когда я выдаю соединение, я отправляю

curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );

Теперь оно возвращается с CURLE_SSL_CONNECT_ERROR.Я пытаюсь получить sdterror, но происходит сбой через ...

FILE  *pLocalFile;
if( fopen_s( &pLocalFile, "MyHTTPS.Log", "w" ))
    return -1;

curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L ); 
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteFileCallback ); 
curl_easy_setopt(curl, CURLOPT_STDERR, pLocalFile ); 

Как только я выполняю перфоманс, я получаю DLL, вызвавшую исключение.Таким образом, я даже не могу понять, в чем причина сбоя соединения ... я подозреваю, что это сертификаты.

1 Ответ

0 голосов
/ 19 марта 2011

Чтобы упростить решение этой проблемы, нужно разбираться.

Сначала вы исправляете SSL-соединение / рукопожатие, чтобы у вас не возникало проблем или ошибок, связанных с SSL.* Затем вы убедитесь, что вы предоставили необходимые средства аутентификации HTTP и установили базовый уровень, и вам нужно всего лишь сделать один HTTP-запрос, чтобы получить правильный ответ (при условии, что сервер действительно этого хочет).«DLL вызвала исключение» кажется третьей проблемой и не зависит от других вещей.Трудно сказать, почему вы это понимаете, поскольку у нас нет полной картины того, что вы делаете.

...