Ошибка SSL: CERT_UNTRUSTED при использовании команды npm
Я пытаюсь установить express framework с помощью команды npm, но получаю следующую ошибку.
сообщение об ошибке
E:\myFindings\nodejs_programs\node>npm install -g express
npm http GET https://registry.npmjs.org/express
npm ERR! Error: SSL Error: CERT_UNTRUSTED
npm ERR! at ClientRequest.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\main.js:409:26)
npm ERR! at ClientRequest.g (events.js:185:14)
npm ERR! at ClientRequest.EventEmitter.emit (events.js:88:17)
npm ERR! at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1445:7)
npm ERR! at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:111:23)
npm ERR! at CleartextStream.socketOnData [as ondata] (http.js:1356:20)
npm ERR! at CleartextStream.CryptoStream._push (tls.js:396:27)
npm ERR! at SecurePair.cycle (tls.js:751:20)
npm ERR! at EncryptedStream.CryptoStream.write (tls.js:131:13)
npm ERR! at Socket.ondata (stream.js:38:26)
npm ERR! [Error: SSL Error: CERT_UNTRUSTED]
npm ERR! You may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "express"
npm ERR! cwd E:\myFindings\nodejs_programs\node
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
npm ERR! message SSL Error: CERT_UNTRUSTED
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! E:\myFindings\nodejs_programs\node\npm-debug.log
npm ERR! not ok code 0
помогите мне разобраться
Ответы
Ответ 1
Я думаю, что я получил причину вышеупомянутой ошибки. Это корпоративный прокси (виртуальная частная сеть), предоставляемый для работы в клиентской сети. Без этой связи я часто сталкивался с той же проблемой, что и maven build или npm install.
Ответ 2
Вы можете обходить https с помощью следующих команд:
npm config set strict-ssl false
или установите URL-адрес реестра с https или http, как показано ниже:
npm config set registry="http://registry.npmjs.org/"
Однако, я считаю, что обход https не является реальным решением, но мы можем использовать его в качестве обходного пути.
Ответ 3
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
Обновите установку node.js. Следующие команды должны сделать это (от здесь):
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Изменить: хорошо, если у вас действительно есть причина для запуска старинной версии программного обеспечения, npm set ca null
исправит проблему. Это произошло, потому что встроенный сертификат npm истек с годами.
Ответ 4
У меня была такая же проблема, и, наконец, я понял, что моя версия узла старая. Например, вы можете установить текущую версию активного узла LTS в Ubuntu, выполнив следующие действия:
sudo apt-get update
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install nodejs -y
Инструкции по установке для других версий и систем можно найти по следующей ссылке:
https://github.com/nodesource/distributions/blob/master/README.md
Ответ 5
Если вы за корпоративным прокси, попробуйте этот параметр для npm с прокси-сервером вашей компании:
npm --https-proxy=http://proxy.company.com install express -g
Ответ 6
Так как я наткнулся на пост через Google:
Попробуйте использовать npm ci
это будет намного больше, чем npm install
.
Из руководства:
Короче говоря, основные различия между использованием npm install и npm ci:
- Проект должен иметь существующий пакет-lock.json или npm-shrinkwrap.json.
- Если зависимости в блокировке пакета не совпадают с зависимостями в package.json, npm ci выйдет с ошибкой вместо обновления блокировки пакета.
- npm ci может устанавливать только целые проекты за раз: с помощью этой команды нельзя добавить отдельные зависимости.
- Если node_modules уже присутствуют, он будет автоматически удален до начала установки npm ci.
- Он никогда не будет писать в package.json или любой из пакетов-блокировок: установки по сути заморожены.
Ответ 7
сделать конфиг npm установить строгий-ssl false
Ответ 8
Переустановите узел, затем обновите npm.
Сначала я удалил узел
apt-get purge node
Затем установите узел в соответствии с распределением. Документы здесь.
Тогда
npm install [email protected] -g