NSS: сертификат клиента не найден (псевдоним не указан)?
Я пытаюсь получить доступ к сторонней службе через PHP curl в системе Centos 6, которая поставляется с curl и libcurl, скомпилированными против NSS вместо OpenSSL.
Это вызывает проблемы для меня, каждый раз, когда я пытаюсь получить доступ к сервису, я получаю эту ошибку NSS: client certificate not found (nickname not specified)
.
Я понимаю, что мне нужно установить сертификаты в базе данных NSS.
Я ищу пошаговые инструкции о том, как это сделать (помните, мне нужно это для работы с функциями curl PHP, вызванными с сервера Nginx)
Спасибо
Ответы
Ответ 1
Попробуйте префикс имени файла сертификата "./" или используя полный путь. Из справочной страницы curl:
Если curl построен против библиотеки NSS SSL, тогда этот параметр [--cert] может сказать, что прозвище сертификата для использования в База данных NSS, определяемая переменной среды SSL_DIR (или default/etc/pki/nssdb). Если модуль NSS PEM PKCS # 11 (lib- nsspem.so), тогда файлы PEM могут быть загружены. Если вы хотите использовать файл из текущего каталога, пожалуйста, предварите его с префиксом "./", чтобы избежать путаницы с псевдонимом.
(акцент мой)
В качестве альтернативы, некоторые инструкции для импорта в базу данных сертификата NSS находятся здесь, хотя я их не использовал:
http://rcritten.fedorapeople.org/nss_compat_ossl.html
Ответ 2
У меня была такая же проблема на Centos 7. После отладки это было связано с таймаутом.
Так что если вы видите эту проблему и используете curl_setopt($curl, CURLOPT_TIMEOUT_MS, 300);
Затем проверьте, сколько времени это займет. Если это около вашего периода ожидания. Это проблема, не связанная с каким-либо сертификатом.
Я ожидал некоторую ошибку тайм-аута от Curl в случае тайм-аута, но это, кажется, не происходит
Ответ 3
Я получил то же сообщение об ошибке с завихрением, когда я ввел неправильный пароль при попытке получить доступ к серверу FTPS, который использовал простую аутентификацию пароля. Это не имело никакого отношения к сертификатам.