libcurl-NSS 使用 tls 构建 Imap :SSL CA 证书(路径?访问权限?)windows

libcurl-NSS built Imap with tls :SSL CA cert (path? access rights?) windows

我目前正在尝试在 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 数据库证书?

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

ps: 这是我的版本信息

希望你能帮助我。

所以问题出在 libcurl

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

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