【问题标题】:Https is not supported in libcurl window alertnative than using CURLOPT_CAINFOlibcurl 窗口 alertnative 不支持 Https,而不是使用 CURLOPT_CAINFO
【发布时间】:2019-05-15 13:16:50
【问题描述】:

我们在我们的应用程序中使用 libcurl (7.3.6)。 “Https URL”的 API 调用给出“curle_ssl_cacert 错误”。我已经能够使用

解决这个问题
    curl_easy_setopt(curl, CURLOPT_CAINFO, "PATH\\curl-ca-bundle.crt"); 

但是我们不想在我们的应用程序中维护这个文件。有什么方法可以直接从操作系统或其他位置访问?

【问题讨论】:

  • 在 Linux 上构建带有 NSS 支持的 libcurl。在 Windows 上构建带有 schannel 支持的 libcurl 并禁用 openssl。查看here了解更多详情。
  • 如果您使用的是 macOS 或 Windows,则可以使用本机 TLS 库进行构建并使用它们的本机证书存储。如果您使用的是 Linux,则需要使用单独的 CA 证书文件,但您的 Linux 发行版会提供/更新它们...

标签: c++ winapi libcurl


【解决方案1】:

对于 Windows,

如果您想使用 Windows 自己的“CA 证书”,则需要使用 schannel 后端(又名“winssl”)重建 curl。默认情况下,它将从 Windows 证书存储区访问。 Openssl不支持单独使用windows系统证书(见answer),必须指定PEM格式的证书,或者在构建libcurl时使用参数--with-ca-bundle--with-ca-path设置默认证书。

对于 Linux,

根据document

如果 libcurl 是在 NSS 支持下构建的,那么取决于操作系统 分发,可能需要采取一些额外的步骤来 使用系统范围的 CA 证书数据库。 RedHat 附带了一个额外的 模块 libnsspem.so,它使 NSS 能够读取 OpenSSL PEM CA 捆绑。

【讨论】:

    猜你喜欢
    • 2016-08-23
    • 1970-01-01
    • 2019-08-06
    • 2012-03-24
    • 2017-01-10
    • 2017-09-14
    • 2020-01-22
    • 1970-01-01
    • 2013-03-11
    相关资源
    最近更新 更多