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.