Javascript 需要使用node.js设置HTTPS代理的帮助,node.js从浏览器窗口拾取所有HTTPS请求

Javascript 需要使用node.js设置HTTPS代理的帮助,node.js从浏览器窗口拾取所有HTTPS请求,javascript,node.js,Javascript,Node.js,我想使用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 certreque

我想使用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);

因此,上面的代码不起作用,有什么建议我可以解决这个问题,请提前感谢

您可能想查看node.js的http代理。有了它,你所要做的就是

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);

既然我知道您改变了
主机
,那么我认为您应该构建一个http服务器,使用它来执行代理。类似这样的内容(基于):


是的,谢谢,我会看的,但是我需要从浏览器中提取每个请求,添加一个静态主机,这不是违背了目的吗?很可能是的。浏览器如何将请求发送到服务器?我的意思是设置HTTP代理HTTP.createServer(函数(请求,响应){handleRequest(请求,响应);});请求对象接收来自浏览器的请求那么您的问题是什么?如何实现
handleRequest
?我查看了您的解决方案,它对静态主机非常有效,为此,我认为下一步应该是,如果我能够获得请求的url,然后将该值放入主机变量中。
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);