Команда 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