Próbowałem skonfigurować protokół HTTPS z projektem node.js, nad którym pracuję. Zasadniczo postępowałem zgodnie z dokumentacją node.js dla tego przykładu:
// 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);
Teraz, kiedy to zrobię
curl -k https://localhost:8000/
dostaję
hello world
zgodnie z oczekiwaniami. Ale jeśli to zrobię
curl -k http://localhost:8000/
dostaję
curl: (52) Empty reply from server
Z perspektywy czasu wydaje się to oczywiste, że to zadziała w ten sposób, ale jednocześnie ludzie, którzy ostatecznie odwiedzą mój projekt, nie będą wpisywać https : // yadayada, a ja chcę, aby cały ruch był https od momentu, w którym trafią Strona.
Jak mogę sprawić, aby węzeł (i Express, ponieważ jest to platforma, której używam), przekazywał cały ruch przychodzący do https, niezależnie od tego, czy został określony, czy nie? Nie udało mi się znaleźć żadnej dokumentacji, która dotyczyłaby tego. A może po prostu zakłada się, że w środowisku produkcyjnym node ma coś, co znajduje się przed nim (np. Nginx), co obsługuje tego rodzaju przekierowanie?
To moja pierwsza przygoda z tworzeniem stron internetowych, więc proszę wybacz moją ignorancję, jeśli jest to coś oczywistego.