команда curl работает, но программа C не работает NSS: сертификат клиента не найден (псевдоним не указан) - PullRequest
0 голосов
/ 15 февраля 2019

Есть несколько подобных сообщений, но я пытаюсь понять немного больше, чем то, что они предлагают.Моя командная строка curl работает нормально, и я могу общаться с сервером и получать нужные мне данные.Команда выглядит так:

curl -v --tlsv1.2 --cert ./service_cert.pem  --key ./service_private.key  "https://myserver"

Но когда я пытаюсь запустить свою программу на C и проверить клиентский объект http, я вижу

errorBuffer = "NSS: client certificate not found (nickname not specified)

, читая дальше, я понял, что у меня libcurl, собранный с NSSкоторый не поддерживает чтение сертификата из плоского файла (.pem)


Как тогда утилита curl командной строки может прочитать файл pem?

1 Ответ

0 голосов
/ 26 февраля 2019

Вам необходимо импортировать свой сертификат клиента в базу данных NSS, используя certutil, и ваш код должен использовать эту базу данных.

Ссылка:

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil

...