Redirecionando um site Node.js para HTTPS

Existem várias formas de analisar o protocolo de uma requisição em Node.js, mas a grande maioria delas não é compatível com arquiteturas que usam balanceadores de carga. O balanceador de carga fica como intermediário entre a requisição do cliente e o servidor web, sendo ele o responsável por abrir a conexão com o servidor. Da forma tradicional, o servidor web só consegue saber o protocolo usado pela requisição do balanceador de carga, mas o protocolo importante para saber quando fazer ou não o redirecionamento para HTTPS, é usado pelo cliente em relação ao balanceador de carga.

Como essa informação é importante, a Umbler configura seus balanceadores de carga para armazenarem o protocolo da requisição no cabeçalho X-Forwarded-Proto. Em seu código é possível recuperar essa informação contida no cabeçalho, e caso o valor seja diferente de “https”, redirecionar para uma URL que use o protocolo HTTPS, do contrário, seguir com o fluxo normal da aplicação. Para deixar mais claro, temos um exemplo usando o framework Express.

app.get('*', (req, res, next) => {
    if (req.headers['x-forwarded-proto'] != 'https') {
        // checa se o header é HTTP ou HTTPS
        res.redirect("https://" + req.headers.host + req.url);
        // faz o redirect para HTTPS
    } else {
        next();
        // segue com a sequência das rotas
    }
});

Boa Noite Daniel, estou desenvolvendo um aplicativo e precisava que a url fosse com https por se trar do android 9, porém não estou conseguindo configurar isso no umbler. Poderia me ajudar ?

Oi @Israel_Gomes, tudo certo?

Você chegou a dar uma olhada aqui?

Se já olhou, para nos ajudar, manda aí a tecnologia que você está utilizando para esse app.

Abraço.