By default dotcloud allows me to access my node instance via HTTPS, but i should allow only the HTTPS and forward every HTTP request to HTTPS.
How should I do it on dotcloud platform?
Thanks in advance!
It should be the same way as any other node.js application hosted elsewhere.
Have you tried the solutions in these answers?
dotCloud provides an additional header: x-forwarded-proto which allows you to know the proxy source.
In your code you can use req.headers['x-forwarded-proto'] ( is either 'http' or 'https' ) to know the source. When it's http you can then redirect to the https.
Works! Thanks guys!
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();
});