c - libcurl-NSS 使用 tls :SSL CA cert (path? 访问权限构建 Imap?)windows

标签 c windows ssl libcurl nss

我目前正在尝试在 Windows 应用程序上使用 libcurl 创建一个 imap 客户端。 我正在使用带有 NSS 支持但不支持 OpenSSL 的 libCurl 的预构建版本(由上级决定),当我尝试使用 URL imaps://serveraddress/inbox 连接到我的服务器时,将 CURLOPT_USE_SSL 设置为CURLUSSSL_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 数据库证书?

Windows dll 尝试加载 .so 文件是否正常(如果我没记错的话,它是 linux 格式)?

ps: 这是我的版本信息

  • curl 版本 7.58.0

  • NSS 3.34.1

  • 编译器:MSVC 14.12.25827

希望你能帮助我。

最佳答案

所以问题出在 libcurl 中

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

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

关于c - libcurl-NSS 使用 tls :SSL CA cert (path? 访问权限构建 Imap?)windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52036445/

相关文章:

ssl - 推荐的 OpenSSL 和密码学学习资源有哪些?

sql - 在两个不同服务器之间安全通信的最佳方法

c - 用 ASCII 表示 UTF-8

c - 编译时出现运行时错误

python - 为什么 numpy 比我的 c/c++ 代码对 float 组求和更快?

python - 让我们加密证书,Python 和 Windows

windows - 我如何在 windows 7 x64 上将 jboss EAP-7.0.0 作为 windows 服务运行?

无法恢复最小化窗口

Java JVM 对 --Xmx 的限制

SSL 在 NodeBB 论坛 Apache2 上不工作