无法在Visual Studio中使用Libcurl发出HTTPS请求

时间:2012-09-17 12:20:36

标签: c++ ssl curl openssl libcurl

我在Azure上托管了一个Web服务,它通过自签名证书在SSL下受到保护。

我正在尝试使用以下代码连接到它

CURL *curl;
CURLcode res;

curl = curl_easy_init();

curl_easy_setopt(curl, CURLOPT_URL, "https://XXXXXXXX.cloudapp.net/XXXXXX.svc/getFilms");
curl_easy_setopt(curl, CURLOPT_CAPATH, "C:\\Users\\Jordan\\Desktop\\Jordan-8.pem");
curl_easy_setopt(curl, CURLOPT_CAINFO, "C:\\Users\\Jordan\\Desktop\\Jordan-8.pem");
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);

curl_easy_perform(curl);

然后我收到以下错误

* Connected to XXXXXXXXX.cloudapp.net
* successfully set certificate verify locations:
* CAfile: C:\Users\Jordan\Desktop\Jordan-8.pem
CApath: C:\Users\Jordan\Desktop\Jordan-8.pem
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Closing connection #0
* Peer certificate cannot be authenticated with known CA certificates

我做错了什么吗?我已经在网上研究了很长一段时间,但却什么都没有。

1 个答案:

答案 0 :(得分:1)

通常在发生这种情况时,因为libcurl使用的SSL证书已过时。我建议切换到cert bundle here,看看你是否有更好的运气。