Lorsque j'essaie d'installer un paquet avec npm, cela ne fonctionne pas. Après une longue attente, j'obtiens finalement une erreur 'tunneling socket could not be established, sutatusCode=403'.
$ npm install coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm ERR! Error: tunneling socket could not be established, sutatusCode=403
npm ERR! at ClientRequest.onConnect (c:\Program Files\nodejs\node_modules\npm\node_modules\request\tunnel.js:148:19)
npm ERR! at ClientRequest.g (events.js:193:14)
npm ERR! at ClientRequest.EventEmitter.emit (events.js:123:20)
npm ERR! at Socket.socketOnData (http.js:1393:11)
npm ERR! at TCP.onread (net.js:403:27)
Cependant, lorsque je navigue vers cette même URL dans mon navigateur web (Google Chrome), elle se charge correctement (voir note de bas de page). https://registry.npmjs.org/coffee-script
Qu'est-ce qui ne va pas ?
Bien que j'utilise un proxy https, je suis sûr que ce n'est pas le problème. J'ai configuré la variable d'environnement https_proxy
(selon les règles de npm guide de l'utilisateur ). Je sais que la variable d'environnement est correcte, car le gestionnaire de paquets Python pip
le suit correctement.
Je pense que le problème est lié aux certificats SSL, car si je télécharge cette URL avec wget
j'obtiens une erreur explicite concernant les certificats
$ wget https://registry.npmjs.org/coffee-script
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = c:/progra~1/wget/etc/wgetrc
--2012-12-17 12:14:07-- https://registry.npmjs.org/coffee-script
Resolving corpproxy... 10.254.215.35
Connecting to corpproxy|10.254.215.35|:8080... connected.
ERROR: cannot verify registry.npmjs.org's certificate, issued by `/C=US/ST=CA/L=Oakland/O=npm/OU=npm Certificate Authority/CN=npmCA/emailAddress=i@izs.me':
Unable to locally verify the issuer's authority.
To connect to registry.npmjs.org insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.
Comment puis-je réparer cela ? Sans compromettre la sécurité.
J'avais l'habitude d'obtenir des erreurs de certificat SSL dans mon navigateur web aussi, jusqu'à ce que j'installe le certificat 'npmCA' comme 'autorité de certification racine de confiance' dans les Options Internet du Panneau de configuration (capture d'écran )
Edit : J'ai essayé un insécurité solution de contournement par https://npmjs.org/doc/config.html#strict-ssl
npm set strict-ssl false
Pourtant, il se termine toujours avec la même erreur
$ npm install coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm ERR! Error: tunneling socket could not be established, sutatusCode=403