Eu tenho tentado configurar o HTTPS com um projeto node.js no qual estou trabalhando. Segui essencialmente a documentação do node.js. para este exemplo:
// curl -k https://localhost:8000/
var https = require('https');
var fs = require('fs');
var options = {
key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
Agora, quando eu faço
curl -k https://localhost:8000/
eu recebo
hello world
como esperado. Mas se eu fizer
curl -k http://localhost:8000/
eu recebo
curl: (52) Empty reply from server
Em retrospecto, parece óbvio que funcionaria dessa maneira, mas, ao mesmo tempo, as pessoas que eventualmente visitarem meu projeto não digitarão https : // yadayada, e eu quero que todo o tráfego seja https a partir do momento em que eles acessarem o site.
Como posso obter o nó (e o Express, como essa é a estrutura que estou usando) para entregar todo o tráfego de entrada para https, independentemente de ter sido especificado ou não? Não consegui encontrar nenhuma documentação que tratasse disso. Ou apenas assume-se que, em um ambiente de produção, o nó tem algo à sua frente (por exemplo, nginx) que lida com esse tipo de redirecionamento?
Esta é a minha primeira incursão no desenvolvimento web, então, perdoe minha ignorância se isso for algo óbvio.