Ошибка SELF_SIGNED_CERT_IN_CHAIN
означает, что у вас есть самозаверяющий сертификат в цепочке сертификатов, который в принципе не является доверенным для системы.
Если это происходит, то в основном происходит что-то подозрительное, поэтому, как уже говорили люди,не рекомендуется просто отключать проверки сертификатов, но лучше понять, в чем заключается проблема, и устранить причину.
Это может быть связано либо с:
Если вы доверяете хосту, вы можете экспортировать самоподписанный сертификат из цепочки и импортировать его в систему, чтобы они были помечены как доверенные.
Этоэто можно сделать, проверив сертификаты (изменив example.com
на репозиторий npm, который не работает на основе npm-debug.log
):
openssl s_client -showcerts -connect example.com:443 < /dev/null
, затем сохраните содержимое сертификата (между BEGIN
и END
) в файл .crt
для его импорта.
Linux
Согласно предложению , вы можете добавить экспортированный сертификат в файл /etc/environment
(Узел 7.4+)Например:
NODE_EXTRA_CA_CERTS=/etc/pki/ca-trust/source/anchors/yourCerts.pem
CentOS
В CentOS 5 это можно добавить в файл /etc/pki/tls/certs/ca-bundle.crt
, например,
ex +'g/BEGIN CERTIFICATE/,/END CERTIFICATE/p' <(echo | openssl s_client -showcerts -connect example.com:443) -scq | sudo tee -a /etc/pki/tls/certs/ca-bundle.crt
sudo update-ca-trust force-enable
sudo update-ca-trust extract
npm install
Примечание. Только для экспортапервый сертификат, удалите g
в начале.
В CentOS 6 файл сертификата можно скопировать в /etc/pki/ca-trust/source/anchors/
.
Ubuntu / Debian
В Ubuntu / Debian скопируйте файл CRT в /usr/local/share/ca-certificates/
и запустите:
sudo update-ca-certificates
macOS
В macOS вы можете запустить:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/foo.crt
Windows
В Windows: certutil -addstore -f "ROOT" new-root-certificate.crt
См. Также: npm - Устранение неполадок - Ошибка SSL