【问题标题】:libcurl-NSS built Imap with tls :SSL CA cert (path? access rights?) windowslibcurl-NSS 使用 tls 构建 Imap:SSL CA 证书(路径?访问权限?)窗口
【发布时间】:2019-02-01 19:44:37
【问题描述】:

我目前正在尝试在 Windows 应用程序上使用 libcurl 制作 imap 客户端。 我正在使用带有 NSS 支持但不支持 OpenSSL 的 libCurl 的预构建版本(由上级决定),并且当我尝试使用 URL imaps://serveraddress/inbox 连接到我的服务器时,将 CURLOPT_USE_SSL 设置为CURLUSESSL_ALL 和 CURLOPT_CAINFO 到我在 cert8.db 中的证书昵称我得到了

* Trying servAdress...
* TCP_NODELAY set
Connected to servAdress (servAdress) port portn(#0)
WARNING: failed to load NSS PEM library libnsspem.so. Using OpenSSL PEM certificates will not work.
CAfile: certname
CApath: none
    *Closing connection 0
curl_easy_perform() failed: Problem with the SSL CA cert (path? access rights?)

我尝试将 CURLOPT_SSLCERT 设置为我的 certName,但我得到了相同的错误,只是添加了该行:

* Initializing NSS with certpath: sql:C:\Users\mlegros\SSL_DB\

我的问题是有没有办法在 libcurl 中使用带有 imap 的 NSS db 证书?

windows dll 尝试加载 .so 文件也是正常的吗(如果我没记错的话是 linux 格式)?

ps:这是我的版本信息

  • curl 版本 7.58.0

  • NSS 3.34.1

  • 编译器:MSVC 14.12.25827

希望你能帮助我。

【问题讨论】:

    标签: c windows ssl libcurl nss


    【解决方案1】:

    所以问题出在 libcurl 中

    库名称使用 linux 名称进行硬编码,如果未加载 libnssckbi,我们将无法加载另一个证书,第二部分已根据此 https://github.com/curl/curl/pull/3016 进行了修改。

    如果您不想重新编译 libcurl,一个快速修复方法是将 nssckbi.dll 重命名为 libnssckbi.so

    【讨论】:

      猜你喜欢
      • 2022-08-17
      • 2015-03-15
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      • 2019-05-30
      • 1970-01-01
      相关资源
      最近更新 更多