将SSL证书更改为其他位置

时间:2010-10-20 09:42:20

标签: ssl curl https openssl ssl-certificate

目前,我们使用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/");

然后是具有正确相对路径的四条线。它没有用。

如何将路径(存储证书的目录)更改为我想要的内容。将赞赏示例或解释。

由于

詹姆斯

1 个答案:

答案 0 :(得分:6)

不,在libcurl中根本没有客户端证书的硬编码路径,你的理论是不正确的。

但是你在同一个问题中混合CURLOPT_SSLCERT选项(用于客户端证书)和CURLOPT_CAPATH选项(用于CA证书)可能意味着你误解了什么选项确实是和做的。

capath / bundle在libcurl中有一个硬编码默认值,但您可以随时使用其中一个CA *选项设置自己喜欢的默认值。