Quando tento instalar um pacote com o npm, ele não funciona. Depois de uma longa espera, eventualmente recebo um erro 'não foi possível estabelecer o soquete de tunelamento, 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)
No entanto, quando eu navego para o mesmo URL no meu navegador (Google Chrome), ele carrega bem (consulte a nota de rodapé). https://registry.npmjs.org/coffee-script
O que há de errado?
Embora eu use um proxy https, tenho certeza de que esse não é o problema. Configurei a variável de ambiente https_proxy
(de acordo com o guia do usuário npm ). Eu sei que a variável de ambiente está correta, porque o gerenciador de pacotes Python a pip
segue corretamente.
Acredito que o problema esteja relacionado aos certificados SSL, porque se eu baixar esse URL com wget
, recebo um erro explícito sobre 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.
Como posso consertar isso? Sem comprometer a segurança.
Eu costumava obter erros de certificado SSL em meu navegador da web também, até instalar o certificado 'npmCA' como uma 'autoridade de certificação raiz confiável' nas Opções de Internet do Painel de controle (captura de tela )
Editar: tentei uma solução alternativa insegura por https://npmjs.org/doc/config.html#strict-ssl
npm set strict-ssl false
No entanto, ainda atinge o tempo limite com o mesmo erro
$ 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