it-swarm.com.ru

Как исправить curl: (60) SSL сертификат: Неверная цепочка сертификатов

Я получаю следующую ошибку при запуске curl https://npmjs.org/install.sh | sh на Mac OSX 10.9 (Mavericks):

install [email protected]
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html

Как это исправить?

37
leafiy

С помощью браузера Safari (не Chrome, Firefox или Opera) в Mac OS X 10.9 (Mavericks) посетите https://registry.npmjs.org

Screenshot of Safari showing certificate error

Нажмите кнопку Показать сертификат, а затем установите флажок Всегда доверять. Затем нажмите «Продолжить» и введите свой пароль, если требуется.

Always trust checkbox

Curl теперь должен корректно работать с этим URL.

65
Lewis Buckley

Во-первых, вы должны опасаться URL-адресов, которые выдают ошибки SSL. При этом вы можете подавить ошибки сертификатов в curl с помощью 

curl -k https://insecure.url/content-i-really-really-trust
22
Steen

Проблема заключается в просроченном промежуточном сертификате, который больше не используется и должен быть удален. Вот сообщение в блоге от Digicert, объясняющее проблему и как решить ее.

https://blog.digicert.com/expired-intermediate-certificate/

Я видел проблему с тем, что Github не загружается через SSL как в Safari, так и в командной строке с git pull. Как только я удалил старый сертификат с истекшим сроком, все было хорошо.

18
grempe

После обновления до OS X 10.9.2 у меня начались проблемы с недействительными сертификатами SSL с Homebrew, Textmate, RVM и Github.

Когда я запускаю brew update, я получаю следующую ошибку:

fatal: unable to access 'https://github.com/Homebrew/homebrew/': SSL certificate problem: Invalid certificate chain
Error: Failure while executing: git pull -q Origin refs/heads/master:refs/remotes/Origin/master

Я смог облегчить некоторые проблемы, просто отключив проверку SSL в Git. С консоли (например, оболочки или терминала):

git config --global http.sslVerify false

Я рекомендую это, потому что это противоречит цели SSL, но это единственный совет, который я нашел, который работает в крайнем случае.

Я пытался rvm osx-ssl-certs update all, который заявил Already are up to date.

В Safari я посетил https://github.com и попытался установить сертификат вручную, но Safari не предоставил возможности доверять сертификату.

В конечном итоге мне пришлось сбросить Safari (меню Safari-> Сбросить Safari ...). Затем после этого посетите github.com и выберите сертификат, и «Всегда доверять». Это чувствует неправильно и удаляет историю и сохраненные пароли, но это решило мои проблемы с проверкой SSL. Горько-сладкая победа.

8
scarver2

ПРИМЕЧАНИЕ: Этот ответ явно противоречит цели SSL и должен использоваться в качестве крайней меры.

Для тех, у кого есть проблемы со скриптами, которые скачивают скрипты, которые скачивают скрипты и хотят быстро исправить, создайте файл с именем ~/.curlrc

С содержанием

--insecure

Это заставит curl игнорировать проблемы с сертификатом SSL по умолчанию.

Убедитесь, что вы удалите файл, когда закончите.

ОБНОВЛЕНИЕ

12 дней спустя я получил уведомление об ответе на этот вопрос, который заставил меня сказать: «Хм, я следовал своему собственному совету, не забудьте удалить этот .curlrc?», И обнаружил, что не сделал этого. Так что это действительно подчеркивает, насколько легко оставить свой завиток небезопасным, следуя этому методу.

6
ChristopherJ

Другой причиной этого могут быть дубликаты ключей в вашей цепочке ключей. Я видел эту проблему на двух компьютерах, где был дубликат «DigiCert High Assurance EV Root CA». Один был в цепочке для ключей входа в систему, другой в системе один. Удаление сертификата из цепочки для ключей входа решило проблему.

Это затронуло браузер Safari, а также git в командной строке.

3
Matt Connolly

Я начал видеть эту ошибку после установки последнего обновления инструментов командной строки (6.1) на Yosemite (10.10.1). В данном конкретном случае перезагрузка системы исправила ошибку (я не перезагружался с момента обновления).

Упоминание об этом на случай, если кто-то с такой же проблемой наткнется на эту страницу, как я.

1
zzamboni

После попытки всех вышеперечисленных решений устранить ошибку «curl: (60) SSL-сертификат: невозможно получить сертификат локального эмитента», решение, которое в конечном итоге сработало для меня на OSX 10.9, было:

  1. Найдите расположение файла PEM сертификата curl 'Curl-config --ca' -> /usr/local/etc/openssl/cert.pem

  2. Используйте местоположение папки для определения файла PEM 'Cd/usr/local/etc/openssl'

  3. Создайте резервную копию файла cert.pem 'Cp cert.pem cert_pem.bkup'

  4. Загрузите обновленный файл сертификата с веб-сайта curl 'Sudo wget http://curl.haxx.se/ca/cacert.pem '

  5. Скопируйте загруженный файл PEM, чтобы заменить старый файл PEM 'Cp cacert.pem cert.pem'

    Это модифицированная версия решения, опубликованного для исправления той же проблемы в Ubuntu, найденной здесь:

https://serverfault.com/questions/151157/ubuntu-10-04-curl-how-do-i-fix-update-the-ca-bundle

0
Pinnacle Systems Group