diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index b9cda38b51..6791d7f322 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -49,6 +49,7 @@ "@types/dockerode": "^3.3.0", "@types/express": "^4.17.6", "@types/luxon": "^3.0.0", + "@types/node-forge": "^1.3.0", "@types/webpack-env": "^1.15.2", "archiver": "^5.0.2", "aws-sdk": "^2.840.0", diff --git a/packages/backend-common/src/service/lib/hostFactory.ts b/packages/backend-common/src/service/lib/hostFactory.ts index 16bfc6adf6..ecd214814d 100644 --- a/packages/backend-common/src/service/lib/hostFactory.ts +++ b/packages/backend-common/src/service/lib/hostFactory.ts @@ -21,6 +21,7 @@ import * as http from 'http'; import * as https from 'https'; import { Logger } from 'winston'; import { HttpsSettings } from './config'; +import * as forge from 'node-forge'; const FIVE_DAYS_IN_MS = 5 * 24 * 60 * 60 * 1000; @@ -99,9 +100,8 @@ async function getGeneratedCertificate(hostname: string, logger?: Logger) { if (await fs.pathExists(certPath)) { cert = await fs.readFile(certPath); try { - const forge = require('node-forge'); - const crt = forge.pki.certificateFromPem(cert); - const crtTimestamp = Date.parse(crt.validity.notAfter); + const crt = forge.pki.certificateFromPem(cert.toString()); + const crtTimestamp = Date.parse(crt.validity.notAfter.toString()); remainingMs = crtTimestamp - Date.now(); } catch (error) { logger?.warn(`Unable to parse self-signed certificate. ${error}`); diff --git a/yarn.lock b/yarn.lock index 378e432b08..06939594f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3164,6 +3164,7 @@ __metadata: "@types/minimist": ^1.2.0 "@types/mock-fs": ^4.13.0 "@types/morgan": ^1.9.0 + "@types/node-forge": ^1.3.0 "@types/recursive-readdir": ^2.2.0 "@types/stoppable": ^1.1.0 "@types/supertest": ^2.0.8 @@ -14014,6 +14015,15 @@ __metadata: languageName: node linkType: hard +"@types/node-forge@npm:^1.3.0": + version: 1.3.0 + resolution: "@types/node-forge@npm:1.3.0" + dependencies: + "@types/node": "*" + checksum: f811885f997fbeebb0df2db8249b9b288ad5f5573beaecf6d323b019bb9a4c12f1476a8974c934f62329862f29986c116263a50aef0008364cc3f9867672a5a0 + languageName: node + linkType: hard + "@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": version: 17.0.25 resolution: "@types/node@npm:17.0.25"