From 762b209ffbb22ebf9bb992d14f96eeeac2391bda Mon Sep 17 00:00:00 2001 From: frankpagan Date: Fri, 5 Jan 2024 22:52:40 -0500 Subject: [PATCH] fix: update server object properties --- src/index.js | 59 +++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/src/index.js b/src/index.js index 557d342..5b2dc43 100644 --- a/src/index.js +++ b/src/index.js @@ -1,42 +1,39 @@ -const Https = require('https'); const Http = require('http'); -const fs = require('fs'); +const Https = require('https'); const tls = require('tls'); const acme = require('@cocreate/acme') +const fs = require('fs'); let server = { - acme: new acme(), // Initially an empty object or some placeholder functionality - - loadCertificates(domain) { - try { - return { - key: fs.readFileSync(`/etc/certificates/${domain}/private-key.pem`), - cert: fs.readFileSync(`/etc/certificates/${domain}/fullchain.pem`), - }; - } catch (error) { - console.error("Error loading certificates for domain:", domain); - throw error; // Or handle it by returning default certificates - } - }, + acme: new acme(), + http: Http.createServer(), + https: Https.createServer({ SNICallback: sniCallback }) +}; - async sniCallback(domain, cb) { - try { - console.log('sni') - await server.acme.checkCertificate(domain); // Referencing `this.acme` +function loadCertificates(domain) { + try { + return { + key: fs.readFileSync(`/etc/certificates/${domain}/private-key.pem`), + cert: fs.readFileSync(`/etc/certificates/${domain}/fullchain.pem`), + }; + } catch (error) { + console.error("Error loading certificates for domain:", domain); + throw error; // Or handle it by returning default certificates + } +} - const sslContext = tls.createSecureContext(server.loadCertificates(domain)); - cb(null, sslContext); - } catch (error) { - console.error("Error in SNI callback for domain:", domain, error); - cb(error); // handle error or use default context - } - }, +async function sniCallback(domain, cb) { + try { + console.log('sni') + await server.acme.checkCertificate(domain); // Referencing `this.acme` - https: null, // Will be set after defining `sniCallback` - http: Http.createServer() -}; + const sslContext = tls.createSecureContext(loadCertificates(domain)); + cb(null, sslContext); -// Creating the HTTPS server with the SNI callback -server.https = Https.createServer({ SNICallback: server.sniCallback }); + } catch (error) { + console.error("Error in SNI callback for domain:", domain, error); + cb(error); // handle error or use default context + } +} module.exports = server;