与使用CURLOPT_CAINFO相比,libcurl窗口中不支持Https

时间:2019-05-15 13:16:51

标签: c++ winapi libcurl

我们在应用程序中使用libcurl(7.3.6)。 API调用“ Https URL”,给出“ curle_ssl_cacert错误”。我已经能够使用

解决此问题
    curl_easy_setopt(curl, CURLOPT_CAINFO, "PATH\\curl-ca-bundle.crt"); 

,但我们不想在应用程序中维护此文件。有什么方法可以直接从OS或其他位置进行访问?

1 个答案:

答案 0 :(得分:0)

对于Windows,

如果要使用Windows自己的“ CA证书”,则需要使用schannel后端(也称为“ winssl”)来重建curl。默认情况下,它将从Windows证书存储区进行访问。 Openssl不支持自己使用Windows系统证书(请参阅此answer),并且在使用参数--with-ca-bundle和{{1构建libcurl时,必须使用PEM格式指定证书或设置默认证书}}。

对于Linux,

根据document

  

如果libcurl是使用NSS支持构建的,则取决于操作系统   分发,可能需要采取一些其他步骤来   使用系统范围的CA cert db。 RedHat附带了一个附加   模块libnsspem.so,它使NSS能够读取OpenSSL PEM CA   捆绑包。