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.