Włączanie HTTPS na express.js

Próbuję uzyskać HTTPS działający na express.js dla węzła i nie mogę tego zrozumieć.

To jest mójapp.js kod.

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);

Po uruchomieniu wydaje się odpowiadać tylko na żądania HTTP.

Napisałem prostą wanilięnode.js oparta aplikacja HTTPS:

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);

A kiedy uruchomię tę aplikację, torobi odpowiadać na żądania HTTPS. Zauważ, że nie sądzę, aby licznik toString () w wyniku fs miał znaczenie, ponieważ użyłem kombinacji obu i nadal nie ma es bueno.

EDYTUJ, ABY DODAĆ:

W przypadku systemów produkcyjnych prawdopodobnie lepiej jest korzystać z Nginx lub HAProxy, aby przekazywać żądania do aplikacji nodejs. Możesz skonfigurować nginx do obsługi żądań ssl i po prostu mówić http do swojego węzła app.js.

EDYTUJ DO DODAJ (4/6/2015)

W przypadku systemów korzystających z AWS lepiej jest korzystać z EC2 Elastic Load Balancers do obsługi zakończenia SSL i zezwolić na regularny ruch HTTP do serwerów WWW EC2. Aby zwiększyć bezpieczeństwo, skonfiguruj swoją grupę zabezpieczeń tak, aby tylko ELB mogła wysyłać ruch HTTP do instancji EC2, co uniemożliwi uderzenie zewnętrznych komputerów w niezaszyfrowany ruch HTTP.

questionAnswers(7)

yourAnswerToTheQuestion