По умолчанию dotcloud позволяет мне получить доступ к моему экземпляру узла через HTTPS, но я должен разрешать только HTTPS и перенаправлять каждый HTTP-запрос на HTTPS.
Как мне это сделать на платформе dotcloud?
Заранее спасибо!
По умолчанию dotcloud позволяет мне получить доступ к моему экземпляру узла через HTTPS, но я должен разрешать только HTTPS и перенаправлять каждый HTTP-запрос на HTTPS.
Как мне это сделать на платформе dotcloud?
Заранее спасибо!
dotCloud предоставляет дополнительный заголовок: x-forwarded-proto, который позволяет узнать источник прокси.
В своем коде вы можете использовать req.headers['x-forwarded-proto'] (либо 'http', либо 'https'), чтобы узнать источник. Когда это http, вы можете перенаправить на https.
Это должно быть так же, как и любое другое приложение node.js, размещенное в другом месте.
Вы пробовали решения в этих ответах?
https://stackoverflow.com/questions/8605720/how-to-force-ssl-https-in-express-js
Автоматическое подключение/перенаправление HTTPS с помощью node.js/express
Работает! Спасибо, парни!
connectApp.use(function(req, res, next){
if( req.headers['x-forwarded-proto'] && req.headers['x-forwarded-proto'] == "http" )
res.redirect( 'https://' + global.config.server.address );
else
next();
});