Я пытался настроить 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), который обрабатывает такой тип перенаправления?
Это мой первый опыт веб-разработки, поэтому, пожалуйста, прости мое невежество, если это что-то очевидно.