Как переслать HTTPS-трафик в nodejs? - PullRequest
2 голосов
/ 28 ноября 2010

Я использую nodejs для создания простого прокси-сервера, который регистрирует запросы http и https, однако я не могу получить запросы https для регистрации (запросы http в порядке)

Так как жеЯ создаю прокси-сервер в nodejs, который может устанавливать безопасные соединения?

Мой код до сих пор выглядит как

var http = require('http'),
    httpProxy = require('http-proxy'),
    util = require('util'),
    url = require('url');

httpProxy.createServer(function (request, response, proxy) {
   util.log(request.connection.remoteAddress + ": " + 
        request.method + " " + 
        request.url);

   request.addListener('data', function(chunk) {
      util.log("request: " + chunk);
   });
   uri = url.parse(request.url);
   port = 80;
   if (uri.protocol == 'https:') { // NEVER HAPPENS :(
      port = 443;
   }
   util.log("port:" + port + " host:" + uri.host);
   proxy.proxyRequest(port, uri.hostname);

}).listen(8080);

В настоящее время он использует https://github.com/nodejitsu/node-http-proxy прокси-библиотеку, но еслибиблиотека не поддерживает https (не похоже на atm, поскольку в исходном коде она не устанавливает никаких учетных данных ....), я с удовольствием переписываю прокси-сервер без него.

1 Ответ

0 голосов
/ 09 декабря 2010

Похоже, я не смогу это сделать некоторое время, но есть документация по новому модулю tls, которая, наконец, заставит https-соединения работать должным образом.https://github.com/ry/node/blob/5a87bd168d8fbeca7d48b9ddaa3b4e8a9336719c/doc/api/tls.markdown

...