Как исправить завиток: (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

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

Ответы

Ответ 1

Используя браузер 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.

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

После обновления до 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. С консоли (оболочка или терминал a.k.a.):

git config --global http.sslVerify false

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

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

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

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

Ответ 5

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

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

Ответ 6

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

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

С содержимым

--insecure

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

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

UPDATE

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

Ответ 7

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

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