Cuando intento instalar un paquete con npm, no funciona. Después de una larga espera, finalmente obtengo un error 'No se pudo establecer el socket de tunelización, 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)
Sin embargo, cuando navego a la misma URL en mi navegador web (Google Chrome), se carga bien (ver nota al pie). https://registry.npmjs.org/coffee-script
¿Qué va mal?
Si bien uso un proxy https, estoy seguro de que este no es el problema. He configurado la variable de entorno https_proxy(según la guía del usuario de npm ). Sé que la variable de entorno es correcta, porque el administrador de paquetes de Python la pipsigue correctamente.
Creo que el problema está relacionado con los certificados SSL, porque si descargo esa URL con wget, obtengo un error explícito sobre los certificados.
$ 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.
¿Cómo puedo arreglar esto? Sin comprometer la seguridad.
También solía obtener errores de certificado SSL en mi navegador web, hasta que instalé el certificado 'npmCA' como una 'autoridad de certificación raíz confiable' en las Opciones de Internet del Panel de control (captura de pantalla
)
Editar: probé una solución insegura según https://npmjs.org/doc/config.html#strict-ssl
npm set strict-ssl false
Sin embargo, todavía se agota con el mismo error.
$ 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