web-dev-qa-db-fra.com

Erreur: UNABLE_TO_VERIFY_LEAF_SIGNATURE Installation de Phonegap

J'essaie d'installer Phonegap dans Ubuntu. L'installation de NodeJS a réussi, mais je ne peux pas installer Phonegap lui-même. Voici la sortie d'erreur du terminal:

test@test-VirtualBox:~$ 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

Toute aide serait appréciée.

49
Dozent

J'ai eu la même erreur, étant donné que j'étais derrière un pare-feu/proxy d'entreprise et que le certificat du proxy a été transmis à ma connexion.

Dans votre ligne de commande, exécutez:

npm config set strict-ssl false

REMARQUE: il n’est pas recommandé d’accepter aveuglément des certificats SSL non fiables ou non valides, comme le fait la commande (désactiver la vérification du certificat). Tu peux courir

npm config set strict-ssl true

pour le rallumer.

ref: https://thomashunter.name/blog/npm-ssl-errors/

108
jdmonty

Cela peut être corrigé sans désactiver le SSL strict, mais ce n'est pas trivial.

Trouvez les certificats effectivement utilisés, probablement derrière un proxy d’interception SSL . Vous pourrez peut-être utiliser un navigateur, un outil CLI, etc. J'ai fini par exécuter certmgr.msc sous Windows lorsque les certificats sont distribués via la stratégie de groupe et exportés sous forme de fichiers p7b.

Convertissez les certificats si nécessaire, j'ai utilisé l'outil openssl pour convertir de p7b en PEM (aka .crt)

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

Fusionnez , s'il y a plus d'un certificat, dans un seul fichier PEM, en prenant soin de passer l'ordre de la feuille à la racine.

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

Configurez npm dans le fichier de certificat

npm config set cafile my-company-single.crt

(ou globalement)

Sudo npm config set -g cafile my-company-single.crt
22
Adam

fonctionnement

npm config set strict-ssl false

résolu mon problème.

J'utilise Vagrant (Linux precise32 Ubuntu) et Windows 7 en tant qu'hôte.

Merci

4
jlucasps