Kiedy próbuję zainstalować pakiet z npm, to nie działa. Po długim oczekiwaniu w końcu pojawia się błąd „Nie można ustanowić gniazda tunelującego, 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)
Jednak kiedy przeglądam ten sam adres URL w mojej przeglądarce internetowej (Google Chrome), ładuje się dobrze (patrz przypis). https://registry.npmjs.org/coffee-script
Co się dzieje?
Chociaż korzystam z serwera proxy https, jestem pewien, że to nie jest problem. Skonfigurowałem zmienną środowiskową https_proxy
(zgodnie z instrukcją użytkownika npm ). Wiem, że zmienna środowiskowa jest poprawna, ponieważ menedżer pakietów Pythona pip
poprawnie ją przestrzega.
Wydaje mi się, że problem dotyczy certyfikatów SSL, ponieważ jeśli pobieram ten adres URL z wget
, otrzymuję wyraźny błąd dotyczący certyfikatów
$ 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.
Jak mogę to naprawić? Bez narażania bezpieczeństwa.
Kiedyś otrzymywałem błędy certyfikatu SSL w mojej przeglądarce internetowej, dopóki nie zainstalowałem certyfikatu `` npmCA '' jako `` zaufanego głównego urzędu certyfikacji '' w Opcjach internetowych Panelu sterowania (zrzut ekranu )
Edycja: próbowałem niezabezpieczonego obejścia na https://npmjs.org/doc/config.html#strict-ssl
npm set strict-ssl false
Jednak nadal kończy się czas z tym samym błędem
$ 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