prosource

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

probook 2023. 10. 15. 17:29
반응형

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

npm 명령어를 사용하여 express framework를 설치하려고 하는데 다음 오류가 발생합니다.

오류 메시지는

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

제가 정리하는 것을 돕습니다.

다음 명령을 사용하여 https를 바이패스할 수 있습니다.

npm config set strict-ssl false

또는 아래와 같이 https 또는 http에서 레지스트리 URL을 설정합니다.

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

하지만 개인적으로 https를 우회하는 것이 진정한 해결책은 아니지만, 우리는 그것을 해결책으로 사용할 수 있다고 생각합니다.

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 인증서가 수년간 만료되어 발생하였습니다.

저도 같은 문제가 있었고 마침내 제 노드 버전이 오래되었다는 것을 알게 되었습니다.예를 들어 Ubuntu에서 다음 단계로 현재 활성 LTS 노드 버전을 설치할 수 있습니다.

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

위와 같은 오류의 이유를 알게 된 것 같습니다.클라이언트 네트워크에서 작동하기 위해 제공되는 기업 프록시(가상 사설망)입니다.그 연결이 없으면 빌드를 만들거나 npm을 설치할 때도 종종 같은 문제에 직면했습니다.

회사 프록시를 지원하는 경우 회사 프록시와 함께 npm에 대한 다음 설정을 시도하십시오.

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

구글을 통해 게시물을 우연히 발견한 이후로:

사용해보기npm ci그것은 훨씬 더 많을 것입니다.npm install.

설명서에서:

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

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

노드를 다시 설치한 다음 npm을 업데이트합니다.

먼저 노드를 제거했습니다.

apt-get purge node

그런 다음 분포에 따라 노드를 설치합니다.여기 서류들.

그리고나서

npm install npm@latest -g

인증서가 만료되었거나 교체된 매우 오래된 버전의 node/npm을 실행하는 경우에만 권장됩니다.

npm set ca null

그럼 당신의 것을 하시오.npm install

언급URL : https://stackoverflow.com/questions/21855035/ssl-error-cert-untrusted-while-using-npm-command

반응형