Lorsque j'essaye d'installer un package avec npm, cela ne fonctionne pas. Après une longue attente, j'obtiens finalement une erreur «Le socket de tunneling n'a pas pu être établi, 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), cela se charge correctement (voir la 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 convaincu que ce n'est pas le problème. J'ai configuré la variable d'environnement https_proxy
(selon le guide de l'utilisateur npm ). Je sais que la variable d'environnement est correcte, car le gestionnaire de packages Python la pip
suit correctement.
Je pense que le problème concerne les 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 '' en tant qu '`` autorité de certification racine de confiance' 'dans les options Internet du panneau de configuration (capture d'écran )
Edit: j'ai essayé une solution de contournement non sécurisée par https://npmjs.org/doc/config.html#strict-ssl
npm set strict-ssl false
Pourtant, il expire 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