Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/40: Рейтинг темы: голосов - 40, средняя оценка - 4.83
 Аватар для Jaxmackey
5 / 5 / 2
Регистрация: 04.10.2013
Сообщений: 142

Curl и HTTPS ничего не работает

26.07.2016, 13:19. Показов 8409. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу авторизацию для вк. Я не понимаю в чем дело.. вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
headerlist = curl_slist_append(headerlist, "Host:login.vk.com");
    headerlist = curl_slist_append(headerlist, "User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0");
    headerlist = curl_slist_append(headerlist, "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
    headerlist = curl_slist_append(headerlist, "Accept-Language:en-US,en;q=0.5");
    headerlist = curl_slist_append(headerlist, "Accept-Encoding:gzip, deflate, br");
    CURL *curl_hand;
    CURLcode reus;
    char *cooke1 = "cookie.txt";
        curl_hand = curl_easy_init();
        if (curl_hand)
        {
            curl_easy_setopt(curl_hand, CURLOPT_URL, "https://new.vk.com/login");
            curl_easy_setopt(curl_hand, CURLOPT_HEADER, head);
            curl_easy_setopt(curl_hand, CURLOPT_WRITEDATA, wr_buf);
            curl_easy_setopt(curl_hand, CURLOPT_WRITEFUNCTION, write_data);
            curl_easy_setopt(curl_hand, CURLOPT_HTTPHEADER, headerlist);
            curl_easy_setopt(curl_hand, CURLOPT_COOKIEFILE, cooke1);
            curl_easy_setopt(curl_hand, CURLOPT_COOKIEJAR, cooke1);
            curl_easy_setopt(curl_hand, CURLOPT_SSL_VERIFYPEER, 0);
            curl_easy_setopt(curl_hand, CURLOPT_SSL_VERIFYHOST, 0);
            curl_easy_setopt(curl_hand, CURLOPT_FOLLOWLOCATION, 1);
            reus = curl_easy_perform(curl_hand);
            curl_easy_cleanup(curl_hand);
        }
    printf("%s", wr_buf);
короче ответ пустой.. curl возращает пустоту. если ставишь http то curl возращает ответ... а с https ни в какую. я знаю что надо сертификаты подключать какие то ставить curl_easy_setopt(curl_hand, CURLOPT_SSL_VERIFYPEER, 1); и указывать файл сертификата CURLOPT_CAINFO.. тоже не работает так.. помогите кто знает. и если не сложно покажите пример с подключением нужного мне сертификата...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.07.2016, 13:19
Ответы с готовыми решениями:

Не работает curl с HTTPS. Как быть?
Всем привет! Есть код curl для авторизации. Код работает, но возникла проблема с https. Пытаюсь авторизоваться на сайте с https, но выдает...

CURL и https
Ситуация такая. Есть скрипт который должен производить авторизацию на сайте. Но он почему то не срабатывает. И вместо админ панели браузер...

Curl авторизация на https сайте
Добрый день подскажите как в bash через curl залогиниться на сайте. #curl -u...

16
 Аватар для Jaxmackey
5 / 5 / 2
Регистрация: 04.10.2013
Сообщений: 142
26.07.2016, 16:41  [ТС]
Вот изменил код выдает постоянно ошибку curl_easy_perform() failed: SSL connect error. Правильно ли я указал путь к сертификату?? Сертификат лежит в проекте VS 2015 вместе с кодом cpp проекта. Прикрепленный файл тот который подключен. Я его скачал тут https://curl.haxx.se/docs/caextract.html
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CURL *curl;
    CURLcode res;
 
 
    curl_global_init(CURL_GLOBAL_DEFAULT);
 
    curl = curl_easy_init();
    if (curl)
    {
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, TRUE);
        curl_easy_setopt(curl, CURLOPT_CAINFO, "test.pem");
        curl_easy_setopt(curl, CURLOPT_URL, "https://vk.com");
 
 
        res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                curl_easy_strerror(res));
        curl_easy_cleanup(curl);
    }
 
    curl_global_cleanup();
Вложения
Тип файла: rar test.rar (1.4 Кб, 8 просмотров)
0
 Аватар для Jaxmackey
5 / 5 / 2
Регистрация: 04.10.2013
Сообщений: 142
26.07.2016, 18:00  [ТС]
Ребята! Ну что никто не подскажет!?? уже весь нэт перерыл. Может это дело в сборке curl для VS 2015?? Если нет. Тогда подскажите как заполнить файл .pem чтобы он правильно передавался CURLOPT_CAINFO??? Я не верю что никто с такой проблемой не сталкивался)) Помогите не будьте равнодушными)))
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
26.07.2016, 21:26
Цитата Сообщение от Jaxmackey Посмотреть сообщение
Я его скачал тут
Если вы скачали cacert.pem, то там достаточное количество CA. Должен подойти. Вложение ваше у меня не скачивается.
Цитата Сообщение от Jaxmackey Посмотреть сообщение
Сертификат лежит в проекте VS 2015 вместе с кодом cpp проекта.
На Венде никогда подобным не занимался, но в доках пишут, что винда ищет в текущем каталоге и по Пафу. Попробуйте указать полный путь.
Цитата Сообщение от Jaxmackey Посмотреть сообщение
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, TRUE);
Попробуйте поставить FALSE. При тестах допускается не проверять сертификат, а бездумно ему поверить :-). Только пароли при таком соединении не посылвйте
0
 Аватар для Jaxmackey
5 / 5 / 2
Регистрация: 04.10.2013
Сообщений: 142
26.07.2016, 23:28  [ТС]
gng, если ставлю false или 0 что одно и тоже в принципе выдает такую ошибку curl_easy_perform() failed: SSL connect error.. Если пиши полный путь таким образом
C++
1
2
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1);
        curl_easy_setopt(curl, CURLOPT_CAINFO, "C:\\Users\\Asus\\Documents\\Visual Studio 2015\\Projects\\curl_test\\curl_test\\test.pem");
выдает такую же ошибку SSL connect error. Все перепробовал. Может дело в сборке libcurl??
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.07.2016, 23:50
Цитата Сообщение от Jaxmackey
Второй день не понимаю в чем проблема(( вот тема Curl и HTTPS ничего не работает Очень вас прошу помочь.. Вы наверняка знаете в чем проблема..
1. Собирать curl нужно вместе с SSL (отдельно ставится SSL и прописываются к ней пути).
2. Остальное описано у меня в блоге.
0
 Аватар для Jaxmackey
5 / 5 / 2
Регистрация: 04.10.2013
Сообщений: 142
26.07.2016, 23:57  [ТС]
Avazart, Спасибо что ответили!
Цитата Сообщение от Avazart Посмотреть сообщение
Собирать curl нужно вместе с SSL (отдельно ставится SSL и прописываются к ней пути).
Вы бы не могли дать ссылку где можно почитать как правильно собрать ssl. libcurl надо пересобирать?? или оставить все как есть с этой библиотекой?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.07.2016, 00:07
Где-то была тема на форуме со скриншотами, искать лень.
0
 Аватар для Jaxmackey
5 / 5 / 2
Регистрация: 04.10.2013
Сообщений: 142
27.07.2016, 00:18  [ТС]
Avazart, это подходит? https://habrahabr.ru/post/271203/
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.07.2016, 00:45
Curl без ssl или статическая линковка

Не по теме:

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

0
 Аватар для Jaxmackey
5 / 5 / 2
Регистрация: 04.10.2013
Сообщений: 142
28.07.2016, 18:22  [ТС]
Avazart, Собрал openssl по этой инструкции https://habrahabr.ru/post/271203/ получилось 4 папки bin, include, lib, ssl. содержимое include перекинул в C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include, содержимое lib перекинул в C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib, содержимое bin (там exe) перекинул в папку в проект где .cpp В свойствах проекта пути к либ и инклуд прописаны. так же добавил в код
C++
1
2
#include <openssl\ssl.h>
#pragma comment(lib,"ssleay32.lib")
Попробывал скомпилировать этот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CURL *curl;
    CURLcode res;
 
 
    curl_global_init(CURL_GLOBAL_DEFAULT);
 
    curl = curl_easy_init();
    if (curl)
    {
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, TRUE);
        curl_easy_setopt(curl, CURLOPT_CAINFO, "test.pem");
        curl_easy_setopt(curl, CURLOPT_URL, "https://vk.com");
 
 
        res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                curl_easy_strerror(res));
        curl_easy_cleanup(curl);
    }
 
    curl_global_cleanup();
Curl по прежнему возвращает curl_easy_perform() failed: SSL connect error... Что не так подскажите????
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.07.2016, 19:56
Цитата Сообщение от Jaxmackey Посмотреть сообщение
Что не так подскажите????
Да руки не от туда. Кто вам говорил что-то копировать ?
Если включите мозг и прочтете то я вам писал, то есть шанс что дойдет что нужно пересобрать curl.
(SSL можно поставить уже собранный)
0
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
02.05.2019, 11:03
Цитата Сообщение от Avazart Посмотреть сообщение
1. Собирать curl нужно вместе с SSL (отдельно ставится SSL и прописываются к ней пути).
2. Остальное описано у меня в блоге.
Подскажите пожалуйста, так нужно ставить вместе или отдельно ?
Или что тогда значит - Собирать curl нужно вместе с SSL, подскажите пожалуйста.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.05.2019, 11:44
Цитата Сообщение от Optimus11 Посмотреть сообщение
Подскажите пожалуйста, так нужно ставить вместе или отдельно ?
Что вместе, а что отдельно? Вы о чем?

1. Собрать(из исходников) или поставить(бинарники инсталятором) SSL.
2. Собрать curl указав пути к SSL.
0
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
02.05.2019, 12:46
Цитата Сообщение от Avazart Посмотреть сообщение
Что вместе, а что отдельно? Вы о чем?

1. Собрать(из исходников) или поставить(бинарники инсталятором) SSL.
2. Собрать curl указав пути к SSL.
Собрать из исходников Curl? В исходниках Curl (которые вот тут https://curl.haxx.se/download.html)ssl уже присутствует ?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.05.2019, 13:30
Цитата Сообщение от Optimus11 Посмотреть сообщение
Собрать из исходников Curl?
А можно собрать из чего то другого?

Что это за вопрос такой?
0
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
02.05.2019, 15:41
Цитата Сообщение от Avazart Посмотреть сообщение
А можно собрать из чего то другого?

Что это за вопрос такой?
Для меня просто все эти сборы библиотее очень не понятны, поэтому и учточняю, извините
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.05.2019, 15:41
Помогаю со студенческими работами здесь

Очень долго выполняется curl + https
Вот этот код выполняется 20 секунд! &lt;?php $api_login = '...'; // Логин $api_password = '...'; // Пароль $api_request =...

CURL ничего не возвращает
Добрый день. Задача стоит следующая - собрать номера телефонов на небезызвестной доске. Посмотрел, что там да как устроено, набросал...

Curl не выводит ничего
всем привет нужна ваша помощь,, пытаюсь вывести страницу авито , выдаёт пустую страницу не знаю чего и делать &lt;?php //...

Как сделать авторизацию на сайте http/https CURL
Здраствуйте, хочу сделать авторизацию на github, но пока не знаю как ее сделать. Пишу на c помощью curl, C++. Вот приблизительный код...

Не открывается вообще ничего по протоколу https
Суть проблемы в заголовке. Не открывает ни один сайт через https, гугл диск - тоже, винда обновлятся не может и т.п. Главный вопрос - вирус...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru