libcurl证书验证失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了libcurl证书验证失败相关的知识,希望对你有一定的参考价值。

我正在使用来自C ++代码的libcurl但它在证书验证期间失败了。这是错误输出:

errorbuffer:错误设置证书验证位置:CAfile:/usr/share/ssl/certs/ca-bundle.crt CApath:none

我不明白为什么它在该位置寻找证书,我没有指定任何特定的位置。使用以下代码以不安全模式运行它正常运行:

curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,0L);

但我想以安全模式运行它。

任何想法为什么它在错误的位置寻找证书?

谢谢。

答案

libcurl有一个内置的默认位置,用于查找CA证书包。构建libcurl时设置该默认路径。在许多情况下,这将由Linux发行商完成。

如果要提供默认的不同CA证书捆绑包,libcurl提供了这样做的选项:

  • CURLOPT_CAINFO设置文件名以加载CA证书
  • CURLOPT_CAPATH设置目录(主要用于使用libcurl版本的OpenSSL),其中存储单个CA证书

以上是关于libcurl证书验证失败的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的SSL证书验证失败

证书验证失败怎么回事?

证书申请失败-26

服务器的SSL证书验证失败问题,怎么解决

Mandrill webhooks,SSL证书验证失败,验证CA证书没问题

由于 BoringSSL 证书验证失败,iOS 上的安全 websocket 连接失败