SORU
31 Temmuz 2012, Salı


Etkinleştirme express.js üzerinde HTTPS

HTTPS düğüm için express.js üzerinde çalışan almak için çalışıyorum, ve bunu çözemiyorum.

Bu app.js benim kodudur.

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

Ben çalıştırdığınızda, yalnızca HTTP istekleri için cevap gibi görünüyor.

node.js temel basit vanilya HTTPS uygulaması yazdı:

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

Ve bu uygulamayı çalıştırmak zaman, buyokHTTPS istekleri yanıt. Bu olabilirdi sanmıyorum not() fs sonucu her ikisinin kombinasyonu ve no es bueno hala kullanmadım gibi konularda.


DÜZENLEMEK İÇİN:

Üretim sistemlerinde, muhtemelen Nginx kullanarak veya nodejs uygulaması proxy istekleri için daha iyi HAProxy. Kurulum ssl istekleri ve sadece düğüm senin app.js http konuşmak nginx.

EKLEMEK İÇİN (4/6/2015) DÜZENLEYİN

BÖLÜM kullanarak sistemler için SSL Sonlandırma kolu ve EC2 web sunucuları için normal HTTP trafiğine izin vermek için EC2 Elastik Yük Dengeleyici kullanarak daha iyi. Daha fazla güvenlik kurulumu için tek ELB gibi güvenlik grubu makineleri isabet harici şifrelenmemiş HTTP trafiği engelleyecek olan EC2 örnekleri, HTTP trafik göndermek için izin verilir.


CEVAP
31 Temmuz 2012, Salı


Eğer yeni sürüm açık varsa (3.x) sözdizimi kullanmanız gerekir:

var fs = require('fs');
var http = require('http');
var https = require('https');
var privateKey  = fs.readFileSync('sslcert/server.key', 'utf8');
var certificate = fs.readFileSync('sslcert/server.crt', 'utf8');

var credentials = {key: privateKey, cert: certificate};
var express = require('express');
var app = express();

// your express configuration here

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);

httpServer.listen(80);
httpsServer.listen(443);

Bu şekilde sunucu/https yerel http express katman sağlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Easy Learn Tutorial

    Easy Learn T

    10 Kasım 2012
  • HTC

    HTC

    12 Ocak 2006
  • Liberator

    Liberator

    14 EYLÜL 2007