Khi tôi cố gắng cài đặt một gói với npm, nó không hoạt động. Sau một thời gian dài chờ đợi, cuối cùng tôi nhận được lỗi 'không thể thiết lập ổ cắm đường hầm, 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)
Tuy nhiên, khi tôi duyệt đến cùng một URL đó trong trình duyệt web của mình (Google Chrome), nó tải tốt (xem chú thích). https://registry.npmjs.org/coffee-script
Có chuyện gì vậy?
Mặc dù tôi tình cờ sử dụng proxy https, nhưng tôi tin rằng đây không phải là vấn đề. Tôi đã định cấu hình biến môi trường https_proxy
(theo hướng dẫn sử dụng npm ). Tôi biết biến môi trường là đúng, vì trình quản lý gói Python pip
tuân theo nó một cách chính xác.
Tôi tin rằng sự cố liên quan đến chứng chỉ SSL, vì nếu tôi tải xuống URL đó bằng wget
, tôi sẽ gặp lỗi rõ ràng về chứng chỉ
$ 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.
Làm thế nào tôi có thể sửa lỗi này? Mà không ảnh hưởng đến bảo mật.
Tôi cũng từng gặp lỗi chứng chỉ SSL trong trình duyệt web của mình, cho đến khi tôi cài đặt chứng chỉ 'npmCA' làm 'cơ quan cấp chứng chỉ gốc đáng tin cậy' trong Tùy chọn Internet của Control Panel (ảnh chụp màn hình )
Chỉnh sửa: Tôi đã thử một giải pháp không an toàn cho mỗi https://npmjs.org/doc/config.html#strict-ssl
npm set strict-ssl false
Tuy nhiên, nó vẫn hết thời gian với cùng một lỗi
$ 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