Я пытался настроить HTTPS с проектом node.js, над которым я работаю. Я по существу следовал документации node.js для этого примера:
// 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);
Теперь, когда я делаю
curl -k https://localhost:8000/
Я получаю
hello world
как и ожидалось. Но если я сделаю
curl -k http://localhost:8000/
Я получаю
curl: (52) Empty reply from server
В ретроспективе кажется очевидным, что это будет работать таким образом, но в то же время люди, которые в конечном итоге посещают мой проект, не собираются вводить https : // yadayada, и я хочу, чтобы все трафик будет https с момента их попадания на сайт.
Как я могу заставить узел (и Express, так как это среда, которую я использую) передавать весь входящий трафик на https, независимо от того, был ли он указан? Я не смог найти никаких документов, которые касались этого. Или просто предполагается, что в производственной среде узел имеет что-то, что находится перед ним (например, nginx), который обрабатывает такой тип перенаправления?
Это мой первый опыт веб-разработки, поэтому, пожалуйста, прости мое невежество, если это что-то очевидное.