J'ai essayé de mettre en place le HTTPS dans un projet node.js sur lequel je travaille. J'ai essentiellement suivi le documentation node.js pour cet exemple :
// 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);
Maintenant, quand je fais
curl -k https://localhost:8000/
Je reçois
hello world
comme prévu. Mais si je fais
curl -k http://localhost:8000/
Je reçois
curl: (52) Empty reply from server
Rétrospectivement, il semble évident que cela fonctionne de cette manière, mais en même temps, les personnes qui visitent mon projet ne vont pas taper https ://yadayada, et je veux que tout le trafic soit https dès qu'il arrive sur le site.
Comment puis-je faire en sorte que node (et Express, puisque c'est le framework que j'utilise) transfère tout le trafic entrant vers https, qu'il ait été spécifié ou non ? Je n'ai pas été en mesure de trouver une documentation qui a abordé cette question. Ou est-ce qu'il est simplement supposé que dans un environnement de production, node a quelque chose qui se trouve devant lui (par exemple nginx) qui gère ce type de redirection ?
Il s'agit de ma première incursion dans le domaine du développement web, alors pardonnez mon ignorance si c'est quelque chose d'évident.
0 votes
J'ai répondu à cette question de manière succincte ici : stackoverflow.com/a/23894573/1882064
6 votes
Pour ceux qui DEPLOIENT VERS HEROKU, les réponses à cette question ne vous aideront pas (vous obtiendrez "too many redirects") mais cette réponse d'une autre question
0 votes
Cela répond-il à votre question ? Heroku NodeJS http vers https ssl redirection forcée