From eed6b752d4acd68b902030e216f38e744a3b8fd2 Mon Sep 17 00:00:00 2001 From: Wikinaut Date: Thu, 22 Nov 2012 10:12:58 +0100 Subject: initial https version fix #1148 --- src/node/hooks/express.js | 24 ++++++++++++++++++++++-- src/node/utils/Settings.js | 7 +++++++ 2 files changed, 29 insertions(+), 2 deletions(-) (limited to 'src/node') diff --git a/src/node/hooks/express.js b/src/node/hooks/express.js index 1900a86a..2bbb5eec 100644 --- a/src/node/hooks/express.js +++ b/src/node/hooks/express.js @@ -1,5 +1,4 @@ var hooks = require("ep_etherpad-lite/static/js/pluginfw/hooks"); -var http = require('http'); var express = require('express'); var settings = require('../utils/Settings'); var fs = require('fs'); @@ -50,7 +49,28 @@ exports.restartServer = function () { } var app = express(); // New syntax for express v3 - server = http.createServer(app); + + if (settings.ssl) { + + console.log( "SSL -- enabled"); + console.log( "SSL -- server key file: " + settings.ssl.key ); + console.log( "SSL -- Certificate Authority's certificate file: " + settings.ssl.cert ); + + options = { + key: fs.readFileSync( settings.ssl.key ), + cert: fs.readFileSync( settings.ssl.cert ) + }; + + var https = require('https'); + server = https.createServer(options, app); + + } else { + + console.log( "SSL -- not enabled!" ); + + var http = require('http'); + server = http.createServer(app); + } app.use(function (req, res, next) { res.header("Server", serverName); diff --git a/src/node/utils/Settings.js b/src/node/utils/Settings.js index 2ed76d0b..9caa2b0b 100644 --- a/src/node/utils/Settings.js +++ b/src/node/utils/Settings.js @@ -48,6 +48,13 @@ exports.ip = "0.0.0.0"; * The Port ep-lite should listen to */ exports.port = process.env.PORT || 9001; + +/** + * The SSL signed server key and the Certificate Authority's own certificate + * default case: ep-lite does *not* use SSL. A signed server key is not required in this case. + */ +exports.ssl = false; + /* * The Type of the database */ -- cgit v1.2.3