2013-12-23 3 views
24

우분투에 Phonegap을 설치하려고합니다. NodeJS 설치는 성공했지만 Phonegap 자체는 설치할 수 없습니다. 다음은 터미널의 오류 출력입니다.Error : UNABLE_TO_VERIFY_LEAF_SIGNATURE Phonegap 설치

[email protected]:~$ sudo npm install -g phonegap 
npm http GET https://registry.npmjs.org/phonegap 
npm http GET https://registry.npmjs.org/phonegap 
npm http GET https://registry.npmjs.org/phonegap 
npm ERR! Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE 
npm ERR!  at SecurePair.<anonymous> (tls.js:1350:32) 
npm ERR!  at SecurePair.EventEmitter.emit (events.js:92:17) 
npm ERR!  at SecurePair.maybeInitFinished (tls.js:963:10) 
npm ERR!  at CleartextStream.read [as _read] (tls.js:463:15) 
npm ERR!  at CleartextStream.Readable.read (_stream_readable.js:320:10) 
npm ERR!  at EncryptedStream.write [as _write] (tls.js:366:25) 
npm ERR!  at doWrite (_stream_writable.js:219:10) 
npm ERR!  at writeOrBuffer (_stream_writable.js:209:5) 
npm ERR!  at EncryptedStream.Writable.write (_stream_writable.js:180:11) 
npm ERR!  at write (_stream_readable.js:573:24) 
npm ERR! If you need help, you may report this log at: 
npm ERR!  <http://bugs.debian.org/npm> 
npm ERR! or use 
npm ERR!  reportbug --attach /home/test/npm-debug.log npm 

npm ERR! System Linux 3.11.0-14-generic 
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "phonegap" 
npm ERR! cwd /home/test 
npm ERR! node -v v0.10.15 
npm ERR! npm -v 1.2.18 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /home/test/npm-debug.log 
npm ERR! not ok code 0 

어떤 도움을 주시면 감사하겠습니다.

답변

64

나는 회사 방화벽/프록시 뒤에 있었고 프록시에 인증서가 전달 된 것과 동일한 오류가 발생했습니다. 명령 줄 실행에

:

npm config set strict-ssl false 

참고 :이 맹목적으로 명령이 무엇이고 신뢰할 수없는 또는 잘못된 SSL 인증서를 수락하지 않는 가장 좋은 방법이라고 (인증서 검사를 해제).

npm config set strict-ssl true 

을 다시 실행하면 다시 켜질 수 있습니다.

심판 : https://thomashunter.name/blog/npm-ssl-errors/

+0

그것은 나를 위해 작동합니다. – SaXeTz

+0

@jdmonty 덕분에 많은이 또한 나를 위해 일했습니다 –

+0

고마워요.그것은 npm으로 Angular CLI를 설치하는 경우에도 효과가있었습니다. – kmwtnarendra

3

npm config set strict-ssl false 

내 문제를 해결 실행.

저는 Vagrant (Linux exact32 Ubuntu) 및 Windows 7을 호스트로 사용하고 있습니다.

감사

8

이것은 그러나 그것은 아닌 사소한 엄격한 SSL을 사용하지 않고 해결할 수 있습니다.

인증서가 실제로 사용되고 있습니다. 아마도 behind a corporate SSL intercepting proxy입니다. 브라우저, 일부 CLI 도구 등을 사용할 수 있습니다. 인증서가 그룹 정책을 통해 배포되고 p7b 파일로 내보내기되므로 Windows에서 certmgr.msc을 실행했습니다.

변환 인증서 필요한 경우, 나는 PEM (일명가 .crt) 하나 이상의 인증서가있는 경우

openssl pkcs7 -print_certs -inform DER -in /mnt/adam/certs/my-company-root.p7b -outform PEM -out my-company-root.crt 

는 하나의 PEM으로, 병합에 P7B 변환 할 수있는 OpenSSL 도구를 사용하여 인증서 파일

에서 파일, taking care to order from leaf to root.

cat my-company-leaf.crt my-company-intermediate.crt my-company-root.crt > my-company-single.crt 

구성 NPM

npm config set strict-ssl false 

를 실행

npm config set cafile my-company-single.crt 

(또는 세계)

sudo npm config set -g cafile my-company-single.crt 
-1

나를 위해 일했다. 내 문제를 해결 ....