HTTPS'yi düğüm için express.js üzerinde çalıştırmaya çalışıyorum ve anlayamıyorum.
Bu benim app.js
kodum.
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);
Çalıştırdığımda, yalnızca HTTP isteklerine yanıt veriyor gibi görünüyor.
Basit vanilya node.js
tabanlı HTTPS uygulaması yazdım :
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);
Bu uygulamayı çalıştırdığınızda Ve bu does HTTPS isteklerine cevap. Ben hem ve hala hiçbir es bueno kombinasyonları kullandığım gibi fs sonucu üzerinde toString () önemli olduğunu düşünmüyorum.
EKLE DÜZENLE:
Üretim sistemleri için, muhtemelen nodejs uygulamanıza istekleri proxy yapmak için Nginx veya HAProxy kullanmaktan daha iyi olursunuz. SSL isteklerini işlemek için nginx'i ayarlayabilir ve sadece düğüm uygulamanızla http konuşabilirsiniz. Js.
EKLE DÜZENLE (4/6/2015)
AWS kullanma sistemleri için, SSL Sonlandırmasını işlemek ve EC2 web sunucularınıza düzenli HTTP trafiğine izin vermek için EC2 Elastik Yük Dengeleyicileri kullanmaktan daha iyidir. Daha fazla güvenlik için, güvenlik grubunuzu EC2 bulut sunucularına yalnızca ELB'nin HTTP trafiği göndermesine izin verilecek şekilde ayarlayın, bu da harici şifrelenmemiş HTTP trafiğinin makinelerinize çarpmasını önler.