SSL 오류 : npm 명령을 사용하는 동안 CERT_UNTRUSTED


159

npm 명령을 사용하여 Express 프레임 워크를 설치하려고하는데 다음 오류가 발생합니다.

오류 메시지는

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

또는 아래와 같이 https 또는 http에서 레지스트리 URL을 설정하십시오.

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

그러나 개인적으로 https를 우회하는 것이 실제 솔루션이 아니라고 생각하지만 해결 방법으로 사용할 수 있습니다.


13
다소 안전하지 않지만 멋진 실제 솔루션.
Bernard Saucier

1
위의 명령을 사용하면 우회 옵션을 제거 할 수 있습니까? 그렇다면 우회 옵션을 어떻게 제거 할 수 있습니까?
rash111

1
@ rash111 나는 그것을 true로 설정하면 작동한다고 가정합니다.npm config set strict-ssl true
Gromer

10
"좋은 실제 솔루션"... 해킹을 좋아하지 않는 한 전혀 좋지 않습니다.
trusktr

감사! Ubuntu 14.04를 실행하는 VirtualBox VM에서 npm을 사용할 때도 필요합니다. 이것은 CERT 오류를 해결하는 유일한 방법입니다. 레지스트리가 "http://registry.npmjs.org/"기본값으로 구성된 경우에도 발생합니다 .
Prahlad Yeri

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
나는 현재 두 가지 버전을 사용하고 있습니다. 당신의 요점은 이해할 수 없습니다.
Sudip7

1
내 요점은 : 그 버전은 고대 버전이며 내장 된 npm 인증서는 이미 만료되었습니다. 최신 버전을 설치하면 작동합니다.
alex

1
최신 버전을 설치하려고하는데 설치 중에 문제가 발생했습니다. SO의 누군가가 위 버전을 설치하도록 제안했지만 제대로 설치되었지만 npm이 작동하지 않습니다. 나는 당신에게 내 이전 질문 stackoverflow.com/questions/21850871/…
Sudip7

24
나는 실행 것을 발견 sudo npm cache clean -f한 후 것은 sudo npm install -g n두 번째 명령 후 CERT_UNTRUSTED 오류가 있습니다.
fuzzi

2
참조 된 링크에 따르면 : "노드를 업그레이드하는이 방법은 불안정하고 사용해서는 안됩니다. Node.js 버전을 관리하는 가장 좋은 방법은 NVM : 노드 버전 관리를 사용하는 것입니다. !"
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


우분투 (14)에 근무
인 Vignesh Chinnaiyan

9

위의 오류의 이유가 있다고 생각합니다. 클라이언트 네트워크에서 작동하기 위해 제공되는 회사 프록시 (가상 사설망)입니다. 그 연결이 없으면 자주 maven 빌드 또는 npm 설치와 같은 문제에 직면했습니다.


5

회사 프록시를 사용하는 경우 회사 프록시로 npm에 대해이 설정을 시도하십시오.

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

3
대규모 조직에서 일하는 경우 인터넷과 인터넷 사이에 프록시 서버가있는 것이 일반적입니다. 때때로이 문제가 발생합니다. (나를 위해) 이것에 대한 한 가지 가능한 테스트는 컴퓨터를 네트워크에서 꺼내고 집에서 npm install express를하는 것입니다.
Michael Oakley

2

Google을 통해 게시물을 우연히 발견 한 이후 :

npm ci그것을 사용해보십시오 npm install.

매뉴얼에서 :

간단히 말해 npm install과 npm ci 사용의 주요 차이점은 다음과 같습니다.

  • 프로젝트에는 기존 package-lock.json 또는 npm-shrinkwrap.json이 있어야합니다.
  • 패키지 잠금의 종속성이 package.json의 종속성과 일치하지 않으면 npm ci가 패키지 잠금을 업데이트하는 대신 오류와 함께 종료됩니다.
  • npm ci는 한 번에 전체 프로젝트 만 설치할 수 있습니다.이 명령으로 개별 종속성을 추가 할 수 없습니다.
  • node_modules가 이미 있으면 npm ci가 설치를 시작하기 전에 자동으로 제거됩니다.
  • package.json 또는 패키지 잠금에 쓰지 않습니다. 설치는 기본적으로 정지됩니다.

1

노드를 다시 설치 한 다음 npm을 업데이트하십시오.

먼저 노드를 제거했습니다

apt-get purge node

그런 다음 distibution에 따라 노드를 설치하십시오. 여기에 문서가 있습니다 .

그때

npm install npm@latest -g
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.