Помилка SSL: CERT_UNTRUSTED під час використання команди npm


159

Я намагаюся встановити Express Express за допомогою команди 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!     <npm-@googlegroups.com>

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

допоможи мені розібратися

Відповіді:


316

Ви можете обійти https, використовуючи команди нижче:

npm config set strict-ssl false

або встановіть URL-адресу реєстру з https або http, як показано нижче:

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

Однак я особисто вважаю, що обхід https не є справжнім рішенням, але ми можемо використовувати його як спосіб вирішення.


13
Дещо небезпечне, але приємне рішення реального світу.
Бернард Сосьє

1
Чи можливо видалити параметр обходу, як тільки ми використали команду вище Якщо так, то як ми можемо видалити параметр обходу?
висип111

1
@ rash111 Я припускаю, що встановлення його на істину повинно спрацювати:npm config set strict-ssl true
Громер

10
"приємне рішення у реальному світі" ... Це зовсім не приємно, якщо тільки вам не подобається, щоб вас зламали.
trusktr

Дякую! Це також необхідно при використанні npm у VM VirtualBox під управлінням Ubuntu 14.04. Це єдиний спосіб виправити помилку CERT, вона з’являється навіть тоді, коли реєстр налаштований, для "http://registry.npmjs.org/"якого за замовчуванням.
Прахлад Ери

53
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 закінчився.


3
Я зараз використовую вище дві версії, що ви
думаєте

1
Моя думка: ці версії давні, а вбудовані сертифікати npm у них уже минули. Якщо встановити останні версії, вони працюватимуть.
alex

1
Я спробував встановити останню версію, і під час встановлення виникла певна проблема. Хтось із SO запропонував мені встановити вищевказану версію, вона була встановлена ​​належним чином, але зараз npm не працює. Я даю вам посилання на моє попереднє запитання stackoverflow.com/questions/21850871 / ...
Sudip7

24
Я виявив, що sudo npm cache clean -fпісля запуску sudo npm install -g nприводить помилка CERT_UNTRUSTED після другої команди.
фуцзі

2
За посиланням, що посилається: "Цей метод оновлення вузла зараз нестабільний і його не слід використовувати. Найкращий спосіб керування версіями Node.js - це використання NVM: Node Version Management !"
chus

22

У мене була така ж проблема, і нарешті я зрозумів, що версія мого вузла стара. Наприклад, ви можете встановити поточну активну версію вузла 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


Працював над Ubuntu 14.
Vignesh Chinnaiyan

9

Я думаю, що я отримав причину вищевказаної помилки. Це корпоративний проксі (віртуальна приватна мережа), що надається для роботи в клієнтській мережі. Без цього з'єднання я часто стикався з однією і тією ж проблемою, будь то Maven build або npm install.


5

Якщо ви стоїте за корпоративним проксі, спробуйте це налаштування для npm за допомогою проксі-сервера вашої компанії:

npm --https-proxy=http://proxy.company.com install express -g

3
Якщо ви працюєте у великій організації, звичайно мати проксі-сервер між вами та Інтернетом. Іноді це викликає це питання. (Це було для мене) Одним з можливих тестів на це було б зняти комп'ютер із мережі та встановити npm встановити експрес з дому.
Майкл Оуклі

2

Оскільки я натрапив на пост через Google:

Спробуйте використовувати npm ciйого буде набагато більше ніж npm install.

З посібника:

Коротше кажучи, основні відмінності між використанням npm install та npm ci:

  • Проект повинен мати існуючий пакет-lock.json або npm-shrinkwrap.json.
  • Якщо залежності в блокуванні пакета не збігаються з параметрами пакета.json, npm ci вийде з помилкою, замість оновлення блокування пакета.
  • npm ci може встановлювати лише цілі проекти за один раз: окремі залежності не можна додавати за допомогою цієї команди.
  • Якщо модуль node_ вже присутній, він буде автоматично видалений до того, як npm ci почне встановлення.
  • Він ніколи не запише в package.json або будь-який із пакетів-замків: установки по суті заморожені.

1

Перевстановіть вузол, а потім оновіть npm.

Спочатку я видалив вузол

apt-get purge node

Потім встановіть вузол відповідно до дистибуції. Документи тут .

Тоді

npm install npm@latest -g
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.