programing

nodejs "npm ERR! 코드 SELF_SIGNED_CERT_IN_CHINE"

bestprogram 2023. 8. 5. 10:45

nodejs "npm ERR! 코드 SELF_SIGNED_CERT_IN_CHINE"

nodejs와 npm은 처음입니다.log4js를 설치하려고 하는데 설치 명령어가 다음과 같습니다.

npm install log4js

Windows Command Line에서 이 작업을 실행하는 중인데 마커가 회전한 후 다음 오류가 발생합니다.

npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "log4js"
npm ERR! node v0.12.0
npm ERR! npm  v2.5.1
npm ERR! code SELF_SIGNED_CERT_IN_CHAIN

npm ERR! self signed certificate in certificate chain
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     C:\srv\npm-debug.log

하려고 했습니다.npm config set ca=""여기 제안된 것처럼: http://blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more 하지만 여전히 이 오류가 발생합니다.

이 문제를 해결하고 NPM을 설치하려면 어떻게 해야 합니까?

를 사용하지 않도록 설정하면 이됩니다.strict-ssl 파일 이름은 다음과 .

npm set strict-ssl false

SSL 보안이 해제되어 있으므로 아래의 두 단계가 도움이 되지 않으면 마지막 단계로 SSL 보안을 시도해야 합니다.

이 문제는 npm의 SSL 인증서 파일과 노드 레지스트리 간의 비호환성으로 인해 발생할 수 있습니다.

.

합니다.

npm config set ca=""

사용자 의 npm을 합니다.

npm install npm -g --ca=null

윈도우 10에서도 같은 문제가 발생했습니다.

windows powerShell을 열고 다음 명령을 입력합니다.

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

그런 다음 다음을 사용할 수 있습니다.

npm install [your package]

위의 Akshay Vijay Jain이 언급한 바와 같이,

npm config set strict-ssl false

최신 버전을 설치하기 전에 SSL 끄기:

TURNING OFF SSL BEFORE INSTALLING THE LATEST VERSION

그런 다음 최신 버전을 설치합니다.

npm install -g npm@latest

설치 성공!!:

INSTALL SUCCESS!!

자세한 내용은 추가된 스크린샷을 참조하십시오.

저도 npm이 처음입니다.당신의 링크에 언급된 명령 외에도 다음을 시도해 보았더니 문제가 해결되었습니다.

  • npm set strict-ssl false
  • 일시적으로 McAfee 사용 안 함

참조: Npm SELF_SIGNED_CERT_IN_CHAIN on Azure

StrictSsl을 false로 설정하는 것은 옵션이지만 npm 보안을 손상시킵니다.사용하지 않도록 설정하지 않는 것이 좋습니다.다음 지침은 카페일을 사용하기 위한 슈리다르의 게시물에 대해 자세히 설명합니다.윈도우 10 기계의 관점에서 작성되었지만 조정할 수 있습니다.

우리 회사는 프록시를 통해 SSL 검사 섹션을 사용하기 때문에 최소한 SSL 검사 인증서를 포함해야 합니다.다음 지침에서는 외부에서 npm 기능을 사용하려는 컴퓨터에서 최신 웹 브라우저를 사용할 수 있다고 가정합니다.

  1. 합니다.npm config list
  2. 메트릭 레지스트리 값을 기록합니다.URL이어야 합니다.
  3. URL에 대한 브라우저를 엽니다. 이 답변을 작성한 시점에서 https://registry.npmjs.org/ 입니다.
  4. 사이트의 인증서 정보를 엽니다.Windows에서 Chrome의 경우 주소 표시줄의 URL 왼쪽에 있는 자물쇠 아이콘을 클릭하고 인증서 옵션을 선택합니다.
  5. 인증 경로를 검사합니다.저는 법인 CA와 SSL 검사 인증서가 있습니다.
  6. 각 인증서를 .cer 또는 .crt 파일로 인코딩된 Base64로 다운로드합니다.
  7. 모든 인증서를 있는 그대로 하나의 .cer 또는 .crt 파일로 컴파일합니다.
  8. 이 파일을 사용자 폴더에 넣습니다.네트워크 기반 사용자 폴더가 있지만 로컬 컴퓨터 기반 폴더를 사용하는 것이 좋습니다.이 파일의 전체 경로를 기록합니다.
  9. 합니다.npm config set cafile "C:\Local\Path\To\cafile4npm.cer"8 및 .
  10. » npm installcommand

도커 빌드를 통해 실행할 때 동일한 오류가 발생했습니다.그러나 Powershell 실행은 오류가 없었습니다.그런 다음 다음(위에서 제안한 대로)을 사용하여 도커 파일을 수정합니다.

실행 npm config set ca=""

실행 npm set strict-ssl false

이로 인해 인증서 체인 문제가 해결되었습니다.

CentOS 및 기타 Linux 디스트리뷰터에서는 인증 기관 파일을 사용하도록 NPM을 구성해야 합니다.

npm config set cafile "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" -g

파일이 존재하고 발생할 수 있는 모든 CA 루트(예: 회사 프록시)가 포함되어 있는지 확인합니다.

이 명령으로 이 문제를 해결합니다.

npm config set strict-ssl=false

2014년 2월 27일 현재, npm은 더 이상 자체 서명 인증서를 지원하지 않습니다.npm에서 권장하는 다음 옵션은 다음 중 하나를 수행하는 것입니다.

npm 버전 업그레이드

npm install npm -g --ca=""

또는 --

현재 버전의 npm에 알려진 등록자를 사용하도록 지시

npm config set ca ""

업데이트: npm이 SELF_SIGNED_CERT_에 대한 추가 도움말을 게시했습니다.다양한 환경에 특화된 더 많은 솔루션을 제공하는 IN_CHAINnpm

여기서 더 읽기

요?cafile모든 펨을 하나의 파일에 수용합니까?npm 루트 CA 추가

경우사는에서 .npmrc파일, 설정을 제안하겠습니다.no_proxy사용자의 을 입니다.<server IP address>

우리의 기업 환경은 몇 가지 회사 인증 방식을 통해 이러한 문제를 일으켰고, 이것은 npm과 git 운영 모두에서 Windows 개발에 영향을 주었습니다.npm의 경우, gregsonian이 이전에 제공한 지침(인증서를 구축하고 이를 사용하기 위해 npm 구성을 가리킴)은 여전히 잘 작동합니다. (참고용 Win-10)그렇지 않으면 SSL을 사용하도록 설정하는 것이 좋습니다.

저의 경우, 저는 Fiddler를 설치했는데, 이것은 자체 서명된 인증서를 가지고 있어서 npm 설치를 열광시켰습니다.

자체 서명된 Fiddler 인증서를 제거하는 방법 Fiddler가 설치하는 루트 CA 인증서를 제거하는 방법을 참조하십시오.

TLS 연결에 대한 인증서 유효성 검사를 실행 중지할 수 있습니다.

NODE_TLS_REJECT_UNAUTHORIZED=0 npm install puppeteer

위의 어떤 답변도 제 상황에 도움이 되지 않았습니다.범인은 패키지 에이전트-베이스 pre 6.0.1인 것으로 밝혀졌습니다.실제로 소유자는 자신의 패키지의 테스트 폴더에서 자체 서명된 인증서를 발송한 것을 인정했습니다.이로 인해 -D와 -g를 다시 설치해야 했지만 여전히 문제가 발생하고 있습니다.

node_modules 폴더에서 *.pem을 검색하여 이 인증서를 찾았습니다.

내 말을 듣기 위해 npm 캐시를 얻는 중입니다.물론 내가 바보지?

추가 조사 결과를 다시 게시하겠습니다.

솔루션 발견

7/7/2020

오늘 Angular 애플리케이션이 8.3에서 10.0으로 업그레이드되었습니다.그거 알아?오류가 사라졌습니다.근본적인 원인은 누군가가 서명되지 않은 인증서를 게시하여 NPM 모듈 라이브러리에 너무 깊이 포함시켰기 때문입니다.심지어 NPM 6.15도 가지고 있었습니다!

저는 여기서 많은 해결책을 시도했지만 아무 것도 저에게 효과가 없었습니다.npm을 업데이트하려고 했지만 시간 초과(레지스트리가 http://registry.npmjs.org/), 으로 설정된 경우) 또는 403 금지 응답(레지스트리가 https://registry.npmjs.org/) 으로 설정된 경우)이 발생했습니다.

결국, 제 문제가 대리인 뒤에 있었기 때문에 발생했다는 것을 깨닫고, 결국 제게 효과가 있었던 은 다음과 같습니다.

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080

(크레딧: https://stackoverflow.com/a/12832637/4191296)

노드 js와 angular cli를 다시 설치했습니다.작동하기 시작했어요!!

다른 인증서를 신뢰하려면 새 인증서 NODE_EXTRA_CA_CERTS=<path to .pem file> https://nodejs.org/api/cli.html#cli_node_extra_ca_certs_file 을 신뢰하도록 환경 변수를 정의하는 것이 더 낫다고 생각합니다.

저의 경우 처음에 로컬 우분투 박스에서 모든 http & https 요청을 프록시하도록 오징어를 설정했지만, TLS 버전 > = 1.3에서 ssl-peek 및 splice TLS 핸드셰이크 기능이 필요하다는 것을 몰랐습니다.

다음은 다른 사람들이 "후드 아래"에서 무슨 일이 일어나고 있는지 이해하는 데 도움이 될 수 있으므로 수정 사항이 정확하다고 확신할 수 있습니다.오징어를 사용하지 않는 경우에는 해당 부분을 건너뛰고 최종 npm 단계를 기록합니다.

오징어를 업그레이드하는 단계는 다음과 같습니다.

  1. deladelle에서 제공하는 업그레이드 패치를 설치합니다. 또한 : apt upgrade after apt upgrade after apt update
  2. 자습서를 사용하여 오징어 구성을 업그레이드하여 새로운 ssl-bump 기능을 보완합니다.
  3. 환경 변수 추가 HTTP_PROXY=domain://your.proxy.domain:3128 HTTPS_PROXY=domain:3128
  4. squid를 http/https 프록시로 사용하도록 Firefox 및/또는 Chrome 설정

npm ssl 설치를 사용하려면 프록시 ca 인증서를 추가합니다.pem to npm config

  1. npm config set caile /etc/certs/certs-cert.pem

5단계를 실행한 후, https://registry.npmjs.org 의 npm 설치가 정상적으로 작동했습니다.

Gregsonian이 말한 대로 수행한 문제를 해결하기 위해 회사 인증서에 의해 차단되었지만 다른 이유로 문제가 해결되지 않았습니다.

  • 루트 ca 파일을 가져오는지 확인하거나 Gregsonian이 말한 대로 모든 인증서를 하나의 cer 파일에 복사합니다(정확한 순서대로!).
  • ca=[""](정의된 경우 해당 목록에 ca 경로를 올바르게 추가합니다).올바른 cer 파일로 내 카페일을 설정했지만 빈 카페일도 정의되었기 때문에 npm은 기본적으로 목록을 선택하여 오류가 계속 나타나도록 합니다. -> 해결책은 해당 목록을 제거한 다음 카페일만 갖는 것입니다(npm config set caile "path-to-cafeile").

이전의 두 단계를 올바르게 수행하면 이제 npm을 올바르게 사용할 수 있습니다.

그것이 몇몇 사람들을 도울 수 있기를 바랍니다.

언급URL : https://stackoverflow.com/questions/29141153/nodejs-npm-err-code-self-signed-cert-in-chain