0

node.jsを使用してHTTPSプロキシサーバーをセットアップしたいと思います。ブラウザウィンドウからすべてのHTTPSリクエストを取得する必要があります。Mac Bookを持っていて、HTTPSの設定からプロキシ設定を構成しました。以下はブラウザリクエストをキャプチャするためのサンプルコードですが、このコードは正しいですか?次のコマンドを使用してキーを生成しています。

 openssl genrsa -out privatekey.pem 1024
 openssl req -new -key privatekey.pem -out certrequest.csr
 openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

var options = {
https: {
    key: fs.readFileSync('privatekey.pem', 'utf8'),
    cert: fs.readFileSync('certificate.pem', 'utf8')
},
target: {
    https: true
}
};

https.createServer(options,function(request, response) {
console.log(request);
handleRequest(request, response);
}).listen(8877);

したがって、上記のコードは機能しません。事前に感謝します。

4

2 に答える 2

0

を変更することがわかったので、requesthostを使用してプロキシを実行する http サーバーを構築する必要があると思います。このようなもの(ドキュメント基づく):request

var https = require('https'),
    request = require('request');
var options = {
    https: {
        key: fs.readFileSync('privatekey.pem', 'utf8'),
        cert: fs.readFileSync('certificate.pem', 'utf8')
    },
    target: {
        https: true
    }
};

https.createServer(options,function(req, resp) {
    var otherhost = req.some_method_to_get_host;
    console.log(req);
    req.pipe(request(otherhost)).pipe(resp)
}).listen(8877);
于 2012-10-29T21:59:46.350 に答える
0

node.js の http プロキシであるhttps://github.com/nodejitsu/node-http-proxyを確認してください。それがあれば、あなたがしなければならないのは

var httpProxy = require('http-proxy');
var options = {
  https: {
    key: fs.readFileSync('privatekey.pem', 'utf8'),
    cert: fs.readFileSync('certificate.pem', 'utf8')
  }
};
var port = SOME_PORT;
var host = 'SOME_HOST';
httpProxy.createServer(port, host, options).listen(8877);
于 2012-10-29T20:45:26.087 に答える