libcurl does not work with SSL on Android

у меня есть код, который отправляет post-запросы через libcurl:

CURL *curl;
                CURLcode res;
                curl_global_init(CURL_GLOBAL_ALL);
                curl = curl_easy_init();
                if (curl) {
                    std::string readBuffer;
                    std::string request_body = "abc=def";
                    std::string server_url = OBFUSCATE("https://www.anemoclient.ru/api/auth.php");
                    curl_easy_setopt(curl, CURLOPT_URL, server_url.c_str());
                    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, request_body.c_str());
                    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
                    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
                    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, nullptr);
                    res = curl_easy_perform(curl);
                    if (res != CURLE_OK) {
                        AddChatMessage((char *)curl_easy_strerror(res));
                    } else {
                        if (readBuffer.find((std::string)OBFUSCATE("{\"result\":true}")) != std::string::npos) {
                            action1();

                        } else {
                            action2();
                        }
                    }
                    curl_easy_cleanup(curl);
                }
                curl_global_cleanup();

Когда я добавляю домен с SSL (https://) в CURLOPT_URL, я получаю сообщение об ошибке (res != CURLE_OK) с текстом "Error". Если домен без ssl (http://), то запрос отправляется в обычном режиме. Я скачиваю libcurl.a с https://github.com/gustavogenovese/curl-android-ios/tree/master/prebuilt-with-ssl/android/arm64-v8a и заголовки с официального сайта. В чем может быть причина проблемы?


Ответы (1 шт):

Автор решения: Oleg A

Необходимо библиотеке указать сертификат, ну или просто сказать curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);

→ Ссылка