正确的iptables配置以https模式运行应用程序并强制执行https模式

时间:2015-02-22 07:41:55

标签: node.js amazon-ec2

我试图让我的应用程序在我的生产环境中以https模式运行,这是一个带有ubuntu的ec2实例,在亚马逊网络服务中,但我很难弄清楚正确的iptable配置。

有人可以指出我需要的iptable配置是什么吗?

我正在使用:

app.set('port', process.env.PORT || '443');

我在安全组中打开了HTTP,HTTPS和TCP端口。

我知道我需要在服务器中创建iptables规则,但我不知道哪一个确切,我已经尝试设置,并且正在使用HTTPS,但我希望能够将http请求转发到https ,当我设置时,这不会发生。

我也尝试使用:

function requireHTTPS(req, res, next) {
  if (!req.secure) {
    return res.redirect('https://' + req.get('host') + req.url);
  }
  next();
}
app.use(requireHTTPS);

但没有工作。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你在错误的地方寻找所有:

您需要在端口443上侦听HTTPD作为代理,该代理位于应用程序前面,以便重定向工作,否则您需要允许Node.JS托管HTTPS的中间件包(具有证书交换等) )服务。

您可以使用Apache HTTPd,nginx或lighttpd为您的应用程序执行“代理”以启用HTTPS而无需更改您的代码(不安全的切换(“最后一站”)可以通过管道处理,它不会甚至需要越过公共网络。)