Je vais essayer d'obtenir HTTPS travail sur express.js pour le nœud, et je ne peux pas le comprendre.
C'est mon app.js
code.
var express = require('express');
var fs = require('fs');
var privateKey = fs.readFileSync('sslcert/server.key');
var certificate = fs.readFileSync('sslcert/server.crt');
var credentials = {key: privateKey, cert: certificate};
var app = express.createServer(credentials);
app.get('/', function(req,res) {
res.send('hello');
});
app.listen(8000);
Quand je le lance, il semble être la seule à répondre à des requêtes HTTP.
J'ai écrit simple à la vanille node.js
HTTPS basée sur l'app:
var fs = require("fs"),
http = require("https");
var privateKey = fs.readFileSync('sslcert/server.key').toString();
var certificate = fs.readFileSync('sslcert/server.crt').toString();
var credentials = {key: privateKey, cert: certificate};
var server = http.createServer(credentials,function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(8000);
Et quand je lance cette application, il n' répondre à des requêtes HTTPS. Notez que je ne pense pas que le toString() sur la fs résultat compte, comme je l'ai déjà utilisé des combinaisons des deux, et toujours pas de es bueno.
MODIFIER POUR AJOUTER:
Pour les systèmes de production, vous êtes probablement mieux d'utiliser Nginx ou HAProxy demandes de proxy pour votre application nodejs. Vous pouvez configurer nginx pour gérer les demandes ssl et juste parler de http à votre nœud app.js.