libcurl证书验证失败

时间:2015-08-20 00:32:34

标签: curl ssl-certificate libcurl

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

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

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

curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,0L);

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

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

感谢。

1 个答案:

答案 0 :(得分:4)

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

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

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