Skip to content

Commit

Permalink
ADD SSL support
Browse files Browse the repository at this point in the history
  • Loading branch information
drag0s committed Oct 17, 2016
1 parent f72cae7 commit 50c9419
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 5 deletions.
27 changes: 22 additions & 5 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,51 @@
var WebSocketServer = require('websocket').server;
var http = require('http');
var fs = require('fs');
var argv = require('yargs')
.alias('e', 'exec')
.default('port', 8080)
.alias('p', 'password')
.alias('ssl', 'https')
.boolean('ssl')
.alias('ssl-key', 'key')
.alias('ssl-cert', 'cert')
.alias('ssl-passphrase', 'passphrase')
.describe('ssl', 'Add https support')
.describe('ssl-key', 'Route to SSL key')
.describe('ssl-cert', 'Route to SSL certificate')
.describe('ssl-key', 'Route to SSL key (required if ssl flag)')
.describe('ssl-cert', 'Route to SSL certificate (required if ssl flag)')
.describe('ssl-passphrase', 'Specifies SSL private passphrase')
.describe('port', 'Set the port to listen')
.describe('e', 'Set the command you want to execute')
.describe('p', 'Set a specific password to the WebSocket server')
.demand(['e'])
.implies('ssl', 'ssl-cert')
.implies('ssl-cert', 'ssl-key')
.implies('ssl-key', 'ssl-passphrase')
.argv;

var httpServer = (argv.ssl) ? require('https') : require('http');

var controllers = require('./lib/connectionCtrl.js');
var utils = require('./lib/utils.js');

var PORT = argv.port;

if (argv.password === undefined) console.log("\033[31m\nWARNING: It is recommended to set a password and use encrypted connections with sensible data.\n \x1b[0m")

var server = http.createServer(function(request, response) {
var processReq = function(request, response) {
console.log((new Date()) + ' Received request for ' + request.url);
response.writeHead(404);
response.end();
});
};

if (argv.ssl) {
var server = httpServer.createServer({
key: fs.readFileSync(argv.key, 'utf8'),
cert: fs.readFileSync(argv.cert, 'utf8'),
passphrase: argv.passphrase.toString()
}, processReq).listen(PORT);
} else {
var server = httpServer.createServer(processReq).listen(PORT);
}

server.listen(PORT, function() {
utils.log('Server is listening on port ' + PORT);
Expand Down
1 change: 1 addition & 0 deletions cert/passphrase.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
123412341234
16 changes: 16 additions & 0 deletions cert/server.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICjTCCAfYCCQCI7rMy9cLTvDANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMC
RVMxDDAKBgNVBAgMA0JDTjEMMAoGA1UEBwwDQkNOMRIwEAYDVQQKDAlsb2NhbGhv
c3QxEjAQBgNVBAsMCWxvY2FsaG9zdDESMBAGA1UEAwwJbG9jYWxob3N0MSMwIQYJ
KoZIhvcNAQkBFhRtZUBkcmFnb3Nmb3Rlc2N1LmNvbTAeFw0xNjEwMTcxNzE0NDBa
Fw0xOTA4MDcxNzE0NDBaMIGKMQswCQYDVQQGEwJFUzEMMAoGA1UECAwDQkNOMQww
CgYDVQQHDANCQ04xEjAQBgNVBAoMCWxvY2FsaG9zdDESMBAGA1UECwwJbG9jYWxo
b3N0MRIwEAYDVQQDDAlsb2NhbGhvc3QxIzAhBgkqhkiG9w0BCQEWFG1lQGRyYWdv
c2ZvdGVzY3UuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2RuUzAqwL
+YpDuz00Ed+JQYilB2V+L7R9u9eXLe40Bw38ANKq9wO07kyYgMWsGlzelerYPkIF
yUTxbAmZ/EoORu+fft16mJNSepULgrj6I69bR8YV815bVLYk8etyF24X4JgAOoMg
UMtfds08aoXERudyM1I0deW2mYMee6u1FwIDAQABMA0GCSqGSIb3DQEBCwUAA4GB
AHAXF47ok4AlYHAKPcD/LhrgZWhFolOpxu2Hukn9QRwc8t8XQ6nQDw1spjjAV4nv
kPk+RQR6/YEhMGg3sVGewYxrVbKn9t48kszmahHaqOdbDYlJcJIMhUA8Z9jzClxT
4E+0Rv8w8WQNek3EJCabe6t6JcYzpxtodSD+6tSJlr4B
-----END CERTIFICATE-----
12 changes: 12 additions & 0 deletions cert/server.csr
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIByzCCATQCAQAwgYoxCzAJBgNVBAYTAkVTMQwwCgYDVQQIDANCQ04xDDAKBgNV
BAcMA0JDTjESMBAGA1UECgwJbG9jYWxob3N0MRIwEAYDVQQLDAlsb2NhbGhvc3Qx
EjAQBgNVBAMMCWxvY2FsaG9zdDEjMCEGCSqGSIb3DQEJARYUbWVAZHJhZ29zZm90
ZXNjdS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALZG5TMCrAv5ikO7
PTQR34lBiKUHZX4vtH2715ct7jQHDfwA0qr3A7TuTJiAxawaXN6V6tg+QgXJRPFs
CZn8Sg5G759+3XqYk1J6lQuCuPojr1tHxhXzXltUtiTx63IXbhfgmAA6gyBQy192
zTxqhcRG53IzUjR15baZgx57q7UXAgMBAAGgADANBgkqhkiG9w0BAQsFAAOBgQCj
kfRHe1NxN6SmRFU2k+i0mxJqm5oIVm+MNlkpmMZRcj4oz08Qf4k6U3PO/QiLCQRO
e04pRs/5WPmcXzCF8WEr0wEZnN+bUHQBkrzxuda3B6asomJwMGMKc2lO/fDaL3D9
W6/MeeMshaSACbAbtz+Jq1P8VNoI3XfFYputMvXUcw==
-----END CERTIFICATE REQUEST-----
18 changes: 18 additions & 0 deletions cert/server.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,5493BD25DF0DEA3A

eYdFPPqtMEqiFFrilidfjEPcQnpapUgo1MOzH3COklqDQBBnihjxf7nli1F0wNQg
LdUrK6tJABwYv2BBBsVSwl0o2+WNQS81m35dqM+nn8lpD6Vy9plerbKxfERqWu6N
EsolzhwOEkD61GSMpK79pCu0GobrhmEI0l251bnZRzUYPp0BtnfxX/E4K3AnrQGV
N9UI3CJcxa/RyNTpWXQjbJP7iewp83OSm7FzCxYu6ugvZPS3Ot2VhIuFzzMHqhd4
gieaPfp5sL2gY6TSViRVRB5bf19gx8+pXsm/ttgDSSB07Vohf7j1VzZSzEddC4tU
W/xQCgOqzlyeYWmPisRQDkhbX76uQwL2XuzEU7pnRrI+1Vq+XGPo2cBFDPL0vSfo
lgW39df3KTLbvm5qt0lobssc+VQ1wUgjhjoKp438FbaaSTGvp2Nd5LHixkZzOnou
COxpGnv/mKsFLhZd1hDg8Ri7pGcCghGdscwJe/5WZd8zGtgAMdkhDOZqSAHp1ztY
pNsiaENwDMpoP8w5Zi2pvYFxrcGUA65A40ctipcJY1TsXv/MBdsdTzkqIix6AJrG
97j4QdM7Vh3qgSmflNdaRHYrEvPWtl46Z1S9YSSxkO+DYtrahUnV5iuNvb3Qz0WU
iEqI0k9ITyhxgnam+TWOjrwhsDtxuEivd92va3s7CsX3cEF1FEzw+OQ0CUjhD5wi
+ioOWcCE3gduXgTyIM/gTOhnKBT8eDtfCTGcaUZ3+e9tUBTvbKf1JjMnc7hMZ8wS
mxBlELhmwLEmpNuvisIqQrsbg310Gut7mqrwAtwUczcNT3WI+Uy7Ug==
-----END RSA PRIVATE KEY-----

0 comments on commit 50c9419

Please sign in to comment.