Команда curl работает, но программа C не работает NSS: сертификат клиента не найден (псевдоним не указан)

Есть много подобных постов, но я пытаюсь понять немного больше, чем то, что они предлагают. Моя командная строка 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 ответ

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

Ссылка:

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

Другие вопросы по тегам