Răsfoiți Sursa

Add https to app.js for deployment on Linode.

Lee Morgan 5 ani în urmă
părinte
comite
cd619ade68
1 a modificat fișierele cu 22 adăugiri și 8 ștergeri
  1. 22 8
      app.js

+ 22 - 8
app.js

@@ -2,25 +2,35 @@ const express = require("express");
 const session = require("cookie-session");
 const mongoose = require("mongoose");
 const compression = require("compression");
+const https = require("https");
+const fs = require("fs");
 
 const app = express();
 
-mongoose.connect(process.env.SUBLINE_DB, {useNewUrlParser: true, useUnifiedTopology: true});
+mongoose.connect(`${process.env.DB}/inventory-management`, {useNewUrlParser: true, useUnifiedTopology: true});
 
 app.set("view engine", "ejs");
 
-function requireHTTPS(req, res, next) {
-    if (!req.secure && req.get('x-forwarded-proto') !== 'https' && process.env.NODE_ENV !== "development") {
-      return res.redirect('https://' + req.get('host') + req.url);
-    }
-    next();
+let httpsServer = {};
+if(process.env.NODE_ENV === "production"){
+    httpsServer = https.createServer({
+        key: fs.readFileSync("/etc/letencrypt/live/www.thesubline.com/privkey.pem", "utf8"),
+        cert: fs.readFileSync("/etc/letsencrypt/live/www.leemorgan.io/fullchain.pem", "utf8")
+    }, app);
+
+    app.use((req, res, next)=>{
+        if(req.secure === true){
+            next();
+        }else{
+            res.redirect(`https://${req.headers.host}${req.url}`);
+        }
+    });
 }
 
-app.use(requireHTTPS);
 app.use(compression());
 app.use(session({
     secret: "Super Secret Subline Subliminally Saving Secrets So Sneaky Snakes Stay Sullen",
-    cookie: {secure: false},
+    cookie: {secure: true},
     saveUninitialized: true,
     resave: false
 }));
@@ -30,4 +40,8 @@ app.use(express.json());
 
 require("./routes")(app);
 
+if(process.env.NODE_ENV === "production"){
+    httpsServer.listen(process.env.HTTPS_PORT, ()=>{});
+}
+
 app.listen(process.env.PORT, ()=>{});