Ho provato a configurare HTTPS con un progetto node.js a cui sto lavorando. Ho essenzialmente seguito la documentazione node.js per questo esempio:
// 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);
Ora, quando lo faccio
curl -k https://localhost:8000/
ottengo
hello world
come previsto. Ma se lo faccio
curl -k http://localhost:8000/
ottengo
curl: (52) Empty reply from server
In retrospettiva questo sembra ovvio che funzionerebbe in questo modo, ma allo stesso tempo, le persone che alla fine visitano il mio progetto non digiteranno https : // yadayada e voglio che tutto il traffico sia https dal momento in cui colpiscono il sito.
Come posso ottenere il nodo (ed Express come quello che sto usando) per trasferire tutto il traffico in entrata su https, indipendentemente dal fatto che sia stato specificato o no? Non sono stato in grado di trovare alcuna documentazione che abbia risolto questo problema. O è solo supposto che in un ambiente di produzione, il nodo abbia qualcosa che si trova di fronte (ad esempio nginx) che gestisce questo tipo di reindirizzamento?
Questa è la mia prima incursione nello sviluppo web, quindi per favore perdona la mia ignoranza se questo è qualcosa di ovvio.