在Node.JS中使用自签名证书的HTTPS代理

时间:2014-02-11 20:47:13

标签: node.js ssl https proxy

我正在尝试使用自签名证书在Node.JS v0.10.24中创建HTTPS代理服务器。这是我正在使用的代码:

var https = require('https');

var server = https.createServer({
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
});

server.on('request', function(req, res) {
  res.end('hello');
});

server.listen(8080);

此服务器正确启动,可通过https://localhost:8080访问。但是,当我将其设置为HTTPS代理(在Mac OS X上)时,服务器会发出connection个事件但不会发出requesterror,从而导致连接无限期挂起最终超时。

1 个答案:

答案 0 :(得分:1)

我在Macbook上遇到了同样的问题。问题似乎是OSX中的代理服务器选项使用HTTP CONNECT方法来隧道传输HTTPS请求。

简而言之,这意味着您需要使服务器成为http.Server实例并处理connect事件,这将涉及转发TCP套接字流量。

我知道这个回复有点晚了,但我编写了自己的HTTP / S代理服务器,您可以查看以供参考:https://github.com/robu3/purokishi。涵盖connect方法的具体部分为here