我试图让我的应用程序在我的生产环境中以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);
但没有工作。
非常感谢您的帮助。
答案 0 :(得分:0)
你在错误的地方寻找所有:
您需要在端口443上侦听HTTPD作为代理,该代理位于应用程序前面,以便重定向工作,否则您需要允许Node.JS托管HTTPS的中间件包(具有证书交换等) )服务。
您可以使用Apache HTTPd,nginx或lighttpd为您的应用程序执行“代理”以启用HTTPS而无需更改您的代码(不安全的切换(“最后一站”)可以通过管道处理,它不会甚至需要越过公共网络。)