目前,我们使用cURL从HTTPS读取。一切正常。
我们在curl中设置证书如下:
curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
curl_easy_setopt(curl,CURLOPT_SSLCERT,"/etc/ssl/certs/abc.cert.pem");
curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,"PEM");
curl_easy_setopt(curl,CURLOPT_SSLKEY,"/etc/ssl/certs/abc.key.pem");
现在我们要将这些证书文件移动到其他目录。即使我在上面的命令中更改了路径,它也不起作用,因为我认为证书路径在libcurl中被硬编码为/ etc / ssl。
基于谷歌搜索,我尝试先添加
curl_easy_setopt(curl, CURLOPT_CAPATH, "/MyDir/");
然后是具有正确相对路径的四条线。它没有用。
如何将路径(存储证书的目录)更改为我想要的内容。将赞赏示例或解释。
由于
詹姆斯
答案 0 :(得分:6)
不,在libcurl中根本没有客户端证书的硬编码路径,你的理论是不正确的。
但是你在同一个问题中混合CURLOPT_SSLCERT选项(用于客户端证书)和CURLOPT_CAPATH选项(用于CA证书)可能意味着你误解了什么选项确实是和做的。
capath / bundle在libcurl中有一个硬编码默认值,但您可以随时使用其中一个CA *选项设置自己喜欢的默认值。