Когда я пытаюсь установить пакет с помощью npm, он не работает. После долгого ожидания я в конечном итоге получаю сообщение об ошибке «Не удалось установить туннельный сокет, 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)
Однако когда я перехожу к тому же URL-адресу в своем веб-браузере (Google Chrome), он загружается нормально (см. Сноску). https://registry.npmjs.org/coffee-script
Что не так?
Хотя я использую прокси https, я уверен, что проблема не в этом. Я настроил переменную окружения https_proxy
(согласно руководству пользователя npm ). Я знаю, что переменная среды верна, потому что диспетчер пакетов Python pip
правильно следует за ней.
Я считаю, что проблема связана с сертификатами SSL, потому что, если я загружаю этот URL-адрес с помощью wget
, я получаю явную ошибку о сертификатах
$ 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.
Как я могу это исправить? Без ущерба для безопасности.
Раньше у меня тоже возникали ошибки сертификата SSL в моем веб-браузере, пока я не установил сертификат npmCA в качестве доверенного корневого центра сертификации в настройках Интернета панели управления (снимок экрана )
Изменить: я пробовал небезопасный обходной путь для https://npmjs.org/doc/config.html#strict-ssl
npm set strict-ssl false
Тем не менее, время ожидания с той же ошибкой
$ 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