He estado tratando de configurar HTTPS con un proyecto node.js en el que estoy trabajando. Básicamente, he seguido la documentación de node.js para este ejemplo:
// 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);
Ahora cuando lo hago
curl -k https://localhost:8000/
yo obtengo
hello world
como se esperaba. Pero si lo hago
curl -k http://localhost:8000/
yo obtengo
curl: (52) Empty reply from server
En retrospectiva, esto parece obvio que funcionaría de esta manera, pero al mismo tiempo, las personas que eventualmente visiten mi proyecto no escribirán https : // yadayada, y quiero que todo el tráfico sea https desde el momento en que llegan. el sitio.
¿Cómo puedo obtener el nodo (y Express, ya que es el marco que estoy usando) para transferir todo el tráfico entrante a https, independientemente de si se especificó o no? No he podido encontrar ninguna documentación que aborde esto. ¿O simplemente se supone que en un entorno de producción, el nodo tiene algo que se encuentra frente a él (por ejemplo, nginx) que maneja este tipo de redirección?
Esta es mi primera incursión en el desarrollo web, así que perdona mi ignorancia si esto es algo obvio.