Как заставить nodejs на dotcloud использовать только HTTPS?

По умолчанию dotcloud позволяет мне получить доступ к моему экземпляру узла через HTTPS, но я должен разрешать только HTTPS и перенаправлять каждый HTTP-запрос на HTTPS.

Как мне это сделать на платформе dotcloud?

Заранее спасибо!


person user1018074    schedule 28.01.2013    source источник


Ответы (3)


dotCloud предоставляет дополнительный заголовок: x-forwarded-proto, который позволяет узнать источник прокси.

В своем коде вы можете использовать req.headers['x-forwarded-proto'] (либо 'http', либо 'https'), чтобы узнать источник. Когда это http, вы можете перенаправить на https.

person dhr_p    schedule 28.01.2013

Это должно быть так же, как и любое другое приложение node.js, размещенное в другом месте.

Вы пробовали решения в этих ответах?

https://stackoverflow.com/questions/8605720/how-to-force-ssl-https-in-express-js

Автоматическое подключение/перенаправление HTTPS с помощью node.js/express

person Ken Cochrane    schedule 28.01.2013

Работает! Спасибо, парни!

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();
});
person user1018074    schedule 29.01.2013