2013-12-23 46 views
24

私はUbuntuにPhonegapをインストールしようとしています。 NodeJSのインストールは成功しましたが、Phonegap自体をインストールすることはできません。端末のエラー出力は次のとおりです。エラー: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 

をオンに戻すことができます。

REF: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 precision32 Ubuntu)とWindows 7をホストとして使用しています。

8

これは、厳格なSSLを無効にせずに固定することができ

おかげで、しかし、それは非自明です。

の証明書が実際に使用されています。おそらくbehind a corporate SSL intercepting proxyです。ブラウザ、いくつかのCLIツールなどを使うことができるかもしれません。Windowsでcertmgr.mscを実行しました。証明書がグループポリシーで配布され、p7bファイルとしてエクスポートされるためです。

は、必要に応じて証明書を変換し、私は

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

P7BからPEM(別名.CRT)に変換するためにOpenSSLのツールを使用し、複数の証明書は、単一のPEMに、存在する場合、をマージ証明書ファイルのファイル、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

は私のために働きました。私の問題を解決した....

関連する問題