Сражаюсь не на жизнь, а на смерть за право запроса к https серверу используя libcurl (т.е. "с").
В си я заведомо слаб, только малый опыт с универа.
Суть: Пытаюсь выполнить запрос к https серверу используя libcurl.
В наличии скрипт на php который работает на отлично, выполняя задуманное. Однако нужно быстродействие.
Параметры php curl
CURLE_FTP_SSL_FAILED: 0
CURLOPT_SSL_VERIFYHOST: 0
CURLOPT_SSLVERSION: 3
CURLOPT_SSL_CIPHER_LIST: "RC4-SHA"
CURLOPT_CAINFO: "путь к сертификату склееного с ключом"
CURLOPT_SSLCERT: "путь к сертификату"
CURLOPT_HTTPHEADER: "Content-Type: text/xml; charset=UTF-8"
параметры curl на "с"
curl_easy_setopt(curl, CURLOPT_URL, "https:url");
curl_easy_setopt(curl, CURLOPT_HEADER, "Content-Type: text/xml; charset=UTF-8");
curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
curl_easy_setopt(curl,CURLOPT_SSLCERT, "путь к сертификату склееного с ключом");
curl_easy_setopt(curl, CURLOPT_CAINFO, "путь к сертификату");
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER , 0);
curl_easy_setopt(curl, CURLOPT_SSL_CIPHER_LIST, "RC4-SHA");
curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_SSLv3);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
Беда только в том что код на php отпрабатывает, а на си, ни в какую, или сегфалт или CURLE_SSL_CERTPROBLEM (58) или CURLE_SSL_CACERT (60), но я сомневаюсь что беда с сертификатами, т.к. они отлично отрабатывают в php случае.
И может ли кто то объяснить почему для php curl нужно было в запрос добавлять файл сертификата склеенного с ключом? никак не могу более емкого описания для CURLOPT_CAINFO и CURLOPT_SSLCERT чем на
curl.haxx.se/libcurl/c/curl_easy_setopt.html
С https тоже не дружу. поэтому возможно что выглядит глупо.