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......
Git kliens konfigurálása Mac-en és Windows-on Az előző post-ban a Git szerver telepítésének menetét mutattam be, valamint létrehoztunk egy test nevű repo-t. Most azt nézzük meg, hogy hogyan tudjuk...
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...
Git repository költöztetés Néha előfordul olyan eset, hogy egy komplett repot át kell költöztetni egy másik Git szerverre. Ilyenkor jön a fejvakarás, hogy nehogy elszúrjunk vala...
Sas Sam:
Related Post