X

NodeJs + Express és a HTTPS

Előfordulhat, hogy szükségünk van egy SSL-es webszerverre a NodeJs-es környezetünkben. Ugyebár webszervert Express-szel a legegyszerűbb készíteni, ami így néz ki:

var app = require('express')(),
    server = require('http').createServer(app);
io = require('socket.io').listen(server);

server.listen(8080);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

De ha titkosított csatornára van szükségünk, akkor először is generálnunk kell tanúsítványt magunknak:

$ openssl genrsa -out brainextension-key.pem 1024 
$ openssl req -new -key brainextension-key.pem -out certrequest.csr
$ openssl x509 -req -in certrequest.csr -signkey brainextension-key.pem -out brainextension-cert.pem
Majd jöhet a kód, amely felhasználja ezt a tanúsítványt és a 8080-as porton fog működni. Abban az esetben, ha a szabványos 443-as portot szeretnénk használni, tudnunk kell azt, hogy ezt csak akkor fogja engedni a Node, ha root-ként futtatjuk az alkalmazásunkat. Ellenkező esetben hibaüzenettel le fog állni.
var fs = require('fs'),
    http = require('https');

var privateKey = fs.readFileSync('brainextension-key.pem').toString(),
    certificate = fs.readFileSync('brainextension-cert.pem').toString();
var credentials = {
                    key: privateKey, 
                    cert: certificate
                  };

var express = require('express'),
    server = express();

var https = http.createServer(credentials, server),
    io = require('socket.io').listen(https);

https.listen(8080);

server.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

Készen is vagyunk. Lehet futtatni és meghívni.

 

Hasonló cikkek

Hogyan csináljunk videót képekből Windowson Adott egy könyvtár, amiben van több száz alkönyvtár, amelyek mindegyikében van több ezer jpg kép. Ezekből kellene videót gyártani... automatizáltan......
RVM telepítés OS X-en Telepíteni akartam az RVM-et Mac-en, de állandóan elfüstölt már az elején, amikor a MacPort-ot akarta felrakni. A hiba így nézett ki: rvm 1.25.16 (st...
TP-Link Archer C7 OpenVPN probléma Van egy TP-Link Archer C7 (v5) router is az arzenálban, amin szerettem volna beállítani az OpenVPN szervert úgy, mint az MR600-ason. A felület ugyan a...
NodeJs – Modulok Egy korábbi post-ban bemutattam, hogy mi is a NodeJs és hogyan kell telepíteni, valamint túl vagyunk az első "Hello World!" programunkon is. A mostani...
Sas Sam:
Related Post