Перенаправить http на https express.js

Я пытаюсь перенаправитьhttp (80) вhttps (443) в моем экспресс-приложении. Я использую некоторые промежуточные продукты для этого. Если я пойду к моемуhttps://my-example-domain.com, Все отлично. Но если я пойду кhttp://my-example-domain.com он не перенаправляет и ничего не обнаруживается.

Я также настроил некоторые iptables на моем сервере Ubuntu

sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 8443 -j ACCEPT
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443




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

// all environments
app.set('port', process.env.PORT || 8443);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.logger('dev'));
app.use(requireHTTPS);  // redirect to https
app.use(express.json());
app.use(express.urlencoded());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

app.get('/', function(req, res){
    res.render('index');
})

https.createServer(options, app).listen(8443);

Итак, мой вопрос, мне просто нужно добавить ещеiptables править? Или мне нужно что-то настроить в моем приложении?

Исходя из одного ответа ниже, я не думаю, что это проблема промежуточного программного обеспечения, а проблема порта. Например: если я пойду вhttp://my-example-domain.comне работает. Но если я добавлю порт 8443,http://my-example-domain.com:8443, он перенаправляет нормально.

Ответы на вопрос(6)

Ваш ответ на вопрос