将SSL证书更改为其他位置

Jam*_*mes 3 ssl https curl 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");
Run Code Online (Sandbox Code Playgroud)

现在我们要将这些证书文件移动到不同的目录.即使我在上面的命令中更改路径它也不起作用,因为我认为证书路径在libcurl中被硬编码为/ etc/ssl.

基于谷歌搜索,我尝试先添加,

curl_easy_setopt(curl, CURLOPT_CAPATH, "/MyDir/");
Run Code Online (Sandbox Code Playgroud)

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

如何将路径(存储证书的目录)更改为我想要的内容.将会感谢示例或解释.

谢谢

詹姆士

Dan*_*erg 6

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

但是你在同一个问题中混合CURLOPT_SSLCERT选项(用于客户端证书)和CURLOPT_CAPATH选项(用于CA证书)可能意味着你误解了选项的真正含义和做法.

capath/bundle在libcurl中具有硬编码默认值,但您始终可以使用其中一个CA*选项设置自己的首选默认值.