From d7236fdcc77f0657f6e54a765ec089eecb97fb44 Mon Sep 17 00:00:00 2001 From: Leroy Jethro Gibbs Date: Sat, 24 Mar 2018 20:30:45 +0100 Subject: [PATCH] #999 Add https server for local development --- server.js | 44 +++++++++++++++++++++++++++++--------------- ssl/server.crt | 15 +++++++++++++++ ssl/server.key | 15 +++++++++++++++ 3 files changed, 59 insertions(+), 15 deletions(-) create mode 100644 ssl/server.crt create mode 100644 ssl/server.key diff --git a/server.js b/server.js index a1db753238..8af1426d1b 100644 --- a/server.js +++ b/server.js @@ -3,6 +3,7 @@ var webpack = require("webpack"); var express = require("express"); var devMiddleware = require("webpack-dev-middleware"); var hotMiddleware = require("webpack-hot-middleware"); +var fs = require("fs"); var ProgressPlugin = require("webpack/lib/ProgressPlugin"); var config = require("./webpack.config.js")({prod: false}); @@ -10,29 +11,42 @@ var config = require("./webpack.config.js")({prod: false}); var app = express(); var compiler = webpack(config); -compiler.apply(new ProgressPlugin(function (percentage, msg) { - process.stdout.write((percentage * 100).toFixed(2) + '% ' + msg + ' \033[0G'); -})); - -app.use(devMiddleware(compiler, { - publicPath: config.output.publicPath, - historyApiFallback: true -})); +var https = require("https"); +var http = require("http"); + +compiler.apply( + new ProgressPlugin(function(percentage, msg) { + process.stdout.write( + (percentage * 100).toFixed(2) + + "% " + + msg + + " \033[0G" + ); + }) +); + +app.use( + devMiddleware(compiler, { + publicPath: config.output.publicPath, + historyApiFallback: true + }) +); app.use(hotMiddleware(compiler)); -app.get("*", function (req, res) { +app.get("*", function(req, res) { res.sendFile(path.join(__dirname, "app/assets/index-dev.html")); }); -app.listen(8080, function (err) { - if (err) { - return console.error(err); - } +var options = { + key: fs.readFileSync("./ssl/server.key"), + cert: fs.readFileSync("./ssl/server.crt") +}; - console.log("Listening at http://localhost:8080/"); -}); +http.createServer(app).listen(8080); +https.createServer(options, app).listen(8085); +console.log("Listening at http://localhost:8080/ or https://localhost:8085/"); // new WebpackDevServer(compiler, { // publicPath: config.output.publicPath, // hot: true, diff --git a/ssl/server.crt b/ssl/server.crt new file mode 100644 index 0000000000..3c744066a1 --- /dev/null +++ b/ssl/server.crt @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICWTCCAcICCQCbBM5rROyQVzANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJC +VDESMBAGA1UECAwJQml0c2hhcmVzMRIwEAYDVQQHDAlCaXRzaGFyZXMxEjAQBgNV +BAoMCUJpdHNoYXJlczESMBAGA1UECwwJQml0c2hhcmVzMRIwEAYDVQQDDAlCaXRz +aGFyZXMwHhcNMTgwMzI0MTcxNDI3WhcNMTkwMzI0MTcxNDI3WjBxMQswCQYDVQQG +EwJCVDESMBAGA1UECAwJQml0c2hhcmVzMRIwEAYDVQQHDAlCaXRzaGFyZXMxEjAQ +BgNVBAoMCUJpdHNoYXJlczESMBAGA1UECwwJQml0c2hhcmVzMRIwEAYDVQQDDAlC +aXRzaGFyZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAP7p6jDucc2fCwVI +d+19Uvc3Vrdp4zw1Q0zR4e4ezlGOZ4lr28xnE4j7CqsbXURBlXImh8avYSJroS+A +RwB5UdL8UsT3qcF2WdOL/58g0xX4ErLjOXhZWN/Ujh0Yw8nFQ2B26PDmL9h7KMx7 +46oHzKiXEqdyCE7lzsnD97urPMgrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEARTtM +OcHgdGDdokeNhUobW4tRF1BOFQge2fcKMsrAdTiIuKI3QDVYnKoFyZLDCqSkvVAA +gr6/nVxDV+yQ/2t+OKPJ4vxLVLz0DbG9HCFX6nfYuFfYWjg7Tf/NgyUexwufsL6c +Gw7VVc1NYd3E/Wyket8gyC1oGFKob0/kfmIxtyo= +-----END CERTIFICATE----- diff --git a/ssl/server.key b/ssl/server.key new file mode 100644 index 0000000000..79d0758053 --- /dev/null +++ b/ssl/server.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQD+6eow7nHNnwsFSHftfVL3N1a3aeM8NUNM0eHuHs5RjmeJa9vM +ZxOI+wqrG11EQZVyJofGr2Eia6EvgEcAeVHS/FLE96nBdlnTi/+fINMV+BKy4zl4 +WVjf1I4dGMPJxUNgdujw5i/YeyjMe+OqB8yolxKncghO5c7Jw/e7qzzIKwIDAQAB +AoGBAL0T/jzLMKiHFqKVjTcf5UEvz+d96CoJi+DYMQ/x07FUwmGBGmiz8B6DrvcZ +9gUh7FreT4nFHnRshwN3z7J/SnuM65NjeagsB58ZPGJQoCTL+ienFANdl+DMqxJy +AXlmkh9W51bve23RUNHFyG6mjmKuaHLPa6FOsRsBMmIOu0KRAkEA//x2hKjlYhLW +acIp1iGrIIcvCzt1zel8gmVea2wuuQb72J3f6uG1dvLZ+6ZYsBJh+QQ6Os//uZnx +8nUilm0vmQJBAP7tb+EhxqGYHubppbyEMYSG/kNKHxRc4qmTOpD9J6RUP/WhllHr +CLUWJh42KfC3+n6BWhV8rCnMK/TZqLi6YGMCQQCyrdVIWd/q6f0xyu6K4etiBBop +O/LJrO1U007pqpSeYCqQk/pFKBETGwZeqkkDdYFfYL0IakE0mykPtQVUfJgZAkAa +wxJbsBAKJs4Xr6+Weso3/3Px3HYmzRl+c9ZSIkFnHvEX+D6vmtzvJcQap9T/UFEb +trieSNhKCwUST0dHHUnBAkB49e+o94JYL782sWILZPVcNIjBTWQOtUAimOWMo5np +yp8Dv+vmTOomy5WwnmryMWXE7TcT0qGajRRfq61xQYub +-----END RSA PRIVATE KEY-----