NSS: клиентский сертификат не найден (никнейм не указан)?

Я пытаюсь получить доступ к стороннему сервису через PHP curl в системе Centos 6, которая поставляется с curl и libcurl, скомпилированными для NSS вместо OpenSSL.

Это вызывает у меня проблемы, каждый раз, когда я пытаюсь получить доступ к службе, я получаю эту ошибку NSS: client certificate not found (nickname not specified).

Насколько я понимаю, мне нужно установить сертификаты в базе данных NSS.

Я ищу пошаговые инструкции о том, как это сделать (имейте в виду, мне это нужно для работы с функциями PHP curl, вызываемыми с сервера Nginx)

Спасибо


person Jason    schedule 02.04.2013    source источник


Ответы (3)


Попробуйте добавить к имени файла сертификата префикс «./» или использовать полный путь. Из man-страницы curl:

Если curl создан для библиотеки NSS SSL, то эта опция [--cert] может указать curl псевдоним сертификата для использования в базе данных NSS, определяемой переменной среды SSL_DIR (или по умолчанию /etc/pki/nssdb). Если доступен модуль NSS PEM PKCS#11 (lib-nsspem.so), можно загрузить файлы PEM. Если вы хотите использовать файл из текущего каталога, поставьте перед ним префикс "./", чтобы избежать путаницы с псевдонимом.

(выделено мной)

Кроме того, некоторые инструкции по импорту в базу данных сертификатов NSS находятся здесь, хотя я ими не пользовался: http://rcritten.fedorapeople.org/nss_compat_ossl.html

person pimlottc    schedule 10.04.2013
comment
у меня это не сработало... мой curl не скомпилирован с помощью nsspem. Итак, я использую базу данных nss... но curl никогда не находит дружественное имя моего ключа. Даже если мне удастся перечислить имена ключей с помощью certutil... - person eduardo.lopes; 21.08.2015
comment
Это не сработало для меня, но привело меня в правильном направлении. Мой CURL был скомпилирован с помощью NSS (проверено с помощью curl -version) - и этот пост - решение, которое в итоге сработало для меня: stackoverflow.com/questions/19265100/ - person KFox112; 04.10.2016

У меня была такая же проблема на Centos 7. После отладки это было связано с тайм-аутом.

Поэтому, если вы видите эту проблему и используете curl_setopt($curl, CURLOPT_TIMEOUT_MS, 300);, проверьте, сколько времени это займет. Если это около вашего периода тайм-аута. Это проблема, не связанная с каким-либо сертификатом.

Я ожидал от Curl какой-то ошибки тайм-аута в случае тайм-аута, но, похоже, этого не произошло.

person Iwan van Staveren    schedule 08.03.2019

Я получил такое же сообщение об ошибке с curl, когда ввел неверный пароль при попытке доступа к FTPS-серверу, который использовал простую аутентификацию по паролю. Это не имело никакого отношения к сертификатам.

person asmaier    schedule 05.02.2016