libcurl 证书验证失败

libcurl certificate verification fails

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

errorbuffer:错误设置证书验证位置: CA文件:/usr/share/ssl/certs/ca-bundle.crt 路径:none

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

curl_easy_setopt(卷曲,CURLOPT_SSL_VERIFYPEER,0L);

但我想 运行 它处于安全模式。

知道为什么它在错误的位置寻找证书吗?

谢谢。

libcurl 有一个内置的默认位置,它可以在其中查找 CA 证书包。该默认路径是在构建 libcurl 时设置的。在许多情况下,这将由 Linux 发行版制造商完成。

如果您想提供与默认设置不同的 CA 证书包,libcurl 提供了这样做的选项:

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