Пробую все способы создания реактивного приложения. Я пробовал с maven, и теперь я пытаюсь использовать систему сборки приложений crate-response-app из инкубаторов Facebook.

Когда я попытался запустить команду create-response-app my-app в среде npm, она сработала в моей личной системе без проблем. Но когда я попробовал ту же команду в своей рабочей среде, я столкнулся с этой ошибкой в ​​командной строке

npm ERR! node v6.10.2
npm ERR! npm  v3.10.10
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY

npm ERR! unable to get local issuer certificate
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     

Dinesh

Ответы (13)

Быстрое решение из поиска в Интернете: npm config set strict-ssl false, к счастью, это сработало. Но в рамках моей рабочей среды я ограничен установкой флага strict-ssl в значение false.

Позже я нашел безопасное и рабочее решение,

npm config set registry http://registry.npmjs.org/  

это сработало отлично, и я получил сообщение об успешном завершении Happy Hacking!, если не установил для флага strict-ssl значение false.

Для меня проблема заключалась в VPN, я отключил VPN, и команда "npm i" сработала без сбоев.

В моем случае, в какой-то момент я установил в своей глобальной конфигурации использование сертификата, предназначенного для проекта.

список конфигураций npm

/path/to/global/.npmrc
NODE_EXTRA_CA_CERTS = "./certs/chain.pem"

Я открыл файл, удалил строку и npm install снова заработал.

Изменение URL-адреса репозитория NPM на HTTP работает как быстрое решение, но я хотел использовать HTTPS.

В моем случае прокси у моего работодателя (ZScaler) вызывал проблемы (поскольку он действует как MITM, вызывая проблемы проверки сертификации)

Я забыл. Я нашел скрипт, который помогает с этим и Git (для клонирования репозиториев GitHub через HTTPS была такая же проблема) и разветвил его для моего использования

По сути, для git он делает следующее:

git config --global http.proxy http://gateway.zscaler.net:80/
git config --system http.proxy http://gateway.zscaler.net:80/

, а для узла - proxy =http://gateway.zscaler.net: 80 / в конец c: \ Users \ $ USERNAME \ npm \ .npmrc

Это решило проблему для меня.

может происходить то, что ваша компания расшифровывает определенный трафик и повторно шифрует его с помощью своего сертификата (который, вероятно, уже есть в вашей цепочке ключей или доверенных корневых сертификатах)

если вы используете узел 7 или новее, я обнаружил, что это исправление совместимо с node и node-gyp (для Windows вам нужно сделать это по-другому, но вам просто нужно добавить эту переменную среды) :

экспорт NODE_EXTRA_CA_CERTS = "absolute_path_to_your_certificates.pem" (в Windows может потребоваться удалить кавычки)

pem-файл может иметь несколько сертификатов: https://nodejs.org/api/cli.html#cli_node_extra_ca_certs_file

убедитесь, что ваши сертификаты имеют правильный формат pem (вам нужны реальные разрывы строк, а не буквальные \ n)

Я не мог заставить его работать с относительными путями (. или ~)

Это исправление в основном указывает npm и node-gyp использовать проверку на соответствие обычным центрам сертификации, но также разрешает использование этого сертификата при его обнаружении

В идеале вы могли бы использовать доверенные сертификаты вашей системы, но, к сожалению, это не так.

У меня была эта ошибка, когда я пытался обновить npm, но у меня была действительно старая версия (1.3.6!), Установленная из yum в AWS Linux. Мне удалось вручную установить более новую версию npm, и все было исправлено.

реестр набора конфигураций npm http://registry.npmjs.org/

Если этот трюк с кодом у вас не сработал, то попробуйте запустить приложение из домашнего каталога.. У меня сработало.

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

реестр набора конфигураций пряжи http://registry.npmjs.org

Была такая же ошибка. Похоже, это связано с SSL-сертификатами. Если вы используете NPM для общедоступных пакетов (безопасность HTTPS не требуется), вы можете отключить строгую проверку ключа SSL с помощью следующей команды.

Это может быть самое простое исправление, если вы просто хотите установить несколько общедоступных пакетов за один раз.

npm config set strict-ssl=false

Какая у вас ОС? В Ubuntu мне удалось исправить эту ошибку, запустив

npm config set cafile /etc/ssl/certs/ca-certificates.crt

, чтобы указать npm использовать хранилище сертификатов моей системы. Debian использует тот же путь к системному сертификату, я менее знаком с другими дистрибутивами и ОС.

(Мне не нравятся другие ответы, которые отключают проверку сертификата и допускают атаки типа «злоумышленник посередине».)

Опробовав все решения, я смог найти:

  • Отключение строгого ssl: npm config set strict-ssl = false
  • Изменение реестра на http вместо https: npm config set registry http://registry.npmjs.org/
  • Изменение настроек моего кафе: npm config set cafile /path/to/your/cert.pem
  • Прекратить отклонять неизвестные CA: установить NODE_TLS_REJECT_UNAUTHORIZED = 0

Решение, которое, как мне кажется, сейчас работает лучше всего, - это использовать переменную среды NODE_EXTRA_CA_CERTS, которая расширяет существующие центры сертификации, а не заменяет их опцией cafile в вашем файле .npmrc. Вы можете установить его, введя это в свой терминал: NODE_EXTRA_CA_CERTS = path / to / your / cert.pem

Конечно, установка этой переменной каждый раз может раздражать, поэтому я добавил ее в свой профиль bash, чтобы она устанавливалась каждый раз, когда я открываю терминал. Если у вас еще нет файла ~ / .bash_profile, создайте его. Затем в конце этого файла добавьте export NODE_EXTRA_CA_CERTS = path / to / your / cert.pem. Затем удалите настройку cafile в своем .npmrc.

Поверьте, у вас сработает:

    npm config set registry http://registry.npmjs.org/  

Эту проблему очень легко исправить.

ОШИБКА

npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY 
npm ERR! errno UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm ERR! request to https://registry.npmjs.org/yarn failed, reason: unable to get local issuer certificate  
npm ERR! A complete log of this run can be found in:

Solution

Если вы работаете в организации или в интранете, используйте нижеприведенный комментарий.

npm config set registry https://type_your_org_repo_fqdn

в противном случае

npm config set реестр http://registry.npmjs.org/

2022 WebDevInsider