libcurl-NSS построил Imap с окнами tls: SSL CA (путь? права доступа?) - PullRequest
0 голосов
/ 27 августа 2018

В настоящее время я пытаюсь создать клиент imap с libcurl в приложении для Windows.Я использую предварительно собранную версию libCurl, созданную с поддержкой NSS, но без поддержки OpenSSL (что было решено выше), и когда я пытаюсь подключиться к своему серверу с 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\

мой вопрос, есть ли способ использовать NSS db Certificate с imap в libcurl?

также нормально ли, что Windows dll пытается загрузить .so файл (это формат linux, если я не ошибаюсь)?

ps: вот моя версия информации

  • версия curl 7.58.0

  • NSS 3.34.1

  • компилятор: MSVC 14.12.25827

Надеюсь, вы мне поможете.

1 Ответ

0 голосов
/ 02 октября 2018

Итак, проблема была в libcurl

имя библиотеки жестко закодировано с именем linux, и если libnssckbi не загружен, мы не можем загрузить другой сертификат, вторую часть, как было изменено в соответствии с этим https://github.com/curl/curl/pull/3016.

Быстрое исправление, если вы не хотите перекомпилировать libcurl, это переименовать nssckbi.dll в libnssckbi.so

...