【问题标题】:changing SSL certificates to a different location将 SSL 证书更改为其他位置
【发布时间】:2011-04-27 22:50:14
【问题描述】:

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

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

如何将路径(存储证书的目录)更改为我想要的。示例或解释将不胜感激。

谢谢

詹姆斯

【问题讨论】:

    标签: ssl curl https openssl ssl-certificate


    【解决方案1】:

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

    但是您在这里的同一个问题中混合了CURLOPT_SSLCERT 选项(用于客户端证书)和CURLOPT_CAPATH 选项(用于CA 证书),这可能意味着您误解了这些选项的真正含义然后去做。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 2018-02-13
      • 2017-09-26
      相关资源
      最近更新 更多