Let's Encrypt

0

Cześć,
Pewnie banalne pytanie ale grzebię ( po sieci nie - w dupie) już pod kilku godzin i nie znalazłem rozwiązania. Wykonałem betę na Node.js -> Express -> Handlebars ale okazało się potrzebuję ją uruchamiać przez HTTPS. Żeby nie bawić się zmianę certyfikatów co 45 dni postanowiłem wdrożyć Let's Encrypt pakietem "greenlock". Dokumentacja poprowadziła mnie do uruchomienia serwera HTTPS ale tylko z prostym tekstem "Hello, Encrypted World!" - ja bym chciał natomiast uruchomić całą wcześniej wykonaną aplikację - jeszcze jako świeżak tego nie mogę ogarnąć.

preflight.js (skrócony):

require("greenlock-express")
    .init({
        packageRoot: __dirname,
        configDir: "./greenlock.d",

        maintainerEmail: "[email protected]",
        cluster: false
    })
    .ready(httpsWorker);

function httpsWorker(glx) {

    let httpsServer = glx.httpsServer(null, function (req, res) {
        res.end("Hello, Encrypted World!");
    });

    httpsServer.listen(443, "0.0.0.0", function () {
        console.info("Listening on ", httpsServer.address());
    });

    let httpServer = glx.httpServer();

    httpServer.listen(80, "0.0.0.0", function () {
        console.info("Listening on ", httpServer.address());
    });
}
//.....deklaracja zmiennych....

//....routing np:
app.use(bodyParser.urlencoded({
    extended: true
}))
app.use(express.json());
app.engine('handlebars', engine({
    defaultLayout: 'main',
}))
app.set('view engine', 'handlebars')
app.get('/', handlers.home)

app.get(...)
app.post(...)
.....
itd.

}))

//....funkcje aplikacji

server.js:

"use strict";

var app = require("./preflight.js");

app.get("/hello", function(req, res) {
    res.end("Hello, Encrypted World!");
});

//require("greenlock-express")
require("../../")
    .init({
        packageRoot: __dirname,
        configDir: "./greenlock.d",

        maintainerEmail: "[email protected]",

        cluster: false
    })
    .serve(app);

handlers.js (przykład)
np.

const preflight = require('./../preflight')
  exports.home = (req, res) => res.render('home')
})

Pytanie brzmi gdzie i jak mam podpiąć moja aplikację.

2

A próbowałeś zamienić funkcję ready na serve tak jak jest w przykładzie na githubie? (https://git.rootprojects.org/root/greenlock-express.js.git)

Czyli w najprostszej wersji byłoby coś takiego

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

require("greenlock-express")
    .init({
        packageRoot: __dirname,
        configDir: "./greenlock.d",
        maintainerEmail: "[email protected]",
        cluster: false,
    })
    .serve(app);

I serwer powinien się uruchomić na porcie 80 lub 433 (oczywiście konfigurację wartości musisz dostosować do własnych potrzeb).

1 użytkowników online, w tym zalogowanych: 0, gości: 1