Skip to content
Snippets Groups Projects
Unverified Commit f1401395 authored by Timothy Carambat's avatar Timothy Carambat Committed by GitHub
Browse files

Patch WSS upgrade for manual HTTPS certs (#1429)

* Patch WSS upgrade for manual HTTPS certs

* update comment

* refactor
parent cae6cee1
No related branches found
No related tags found
No related merge requests found
......@@ -18,4 +18,7 @@ public/
# For legacy copies of repo
documents
vector-cache
yarn-error.log
\ No newline at end of file
yarn-error.log
# Local SSL Certs for HTTPS
sslcert
\ No newline at end of file
......@@ -36,7 +36,12 @@ app.use(
})
);
require("express-ws")(app);
if (!!process.env.ENABLE_HTTPS) {
bootSSL(app, process.env.SERVER_PORT || 3001);
} else {
require("express-ws")(app); // load WebSockets in non-SSL mode.
}
app.use("/api", apiRouter);
systemEndpoints(apiRouter);
extensionEndpoints(apiRouter);
......@@ -109,8 +114,6 @@ app.all("*", function (_, response) {
response.sendStatus(404);
});
if (!!process.env.ENABLE_HTTPS) {
bootSSL(app, process.env.SERVER_PORT || 3001);
} else {
bootHTTP(app, process.env.SERVER_PORT || 3001);
}
// In non-https mode we need to boot at the end since the server has not yet
// started and is `.listen`ing.
if (!process.env.ENABLE_HTTPS) bootHTTP(app, process.env.SERVER_PORT || 3001);
......@@ -12,16 +12,18 @@ function bootSSL(app, port = 3001) {
const privateKey = fs.readFileSync(process.env.HTTPS_KEY_PATH);
const certificate = fs.readFileSync(process.env.HTTPS_CERT_PATH);
const credentials = { key: privateKey, cert: certificate };
const server = https.createServer(credentials, app);
https
.createServer(credentials, app)
server
.listen(port, async () => {
await setupTelemetry();
new CommunicationKey(true);
console.log(`Primary server in HTTPS mode listening on port ${port}`);
})
.on("error", catchSigTerms);
return app;
require("express-ws")(app, server); // Apply same certificate + server for WSS connections
return { app, server };
} catch (e) {
console.error(
`\x1b[31m[SSL BOOT FAILED]\x1b[0m ${e.message} - falling back to HTTP boot.`,
......@@ -46,7 +48,8 @@ function bootHTTP(app, port = 3001) {
console.log(`Primary server in HTTP mode listening on port ${port}`);
})
.on("error", catchSigTerms);
return app;
return { app, server: null };
}
function catchSigTerms() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment