node-opcua-server-configuration 2.168.0 → 2.169.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -9,4 +9,5 @@ export * from "./server/promote_trust_list.js";
9
9
  export * from "./server/push_certificate_manager/subject_to_string.js";
10
10
  export * from "./server/push_certificate_manager_helpers.js";
11
11
  export * from "./server/push_certificate_manager_server_impl.js";
12
+ export * from "./server/trust_list_server.js";
12
13
  export * from "./standard_certificate_types.js";
package/dist/index.js CHANGED
@@ -10,5 +10,6 @@ export * from "./server/promote_trust_list.js";
10
10
  export * from "./server/push_certificate_manager/subject_to_string.js";
11
11
  export * from "./server/push_certificate_manager_helpers.js";
12
12
  export * from "./server/push_certificate_manager_server_impl.js";
13
+ export * from "./server/trust_list_server.js";
13
14
  export * from "./standard_certificate_types.js";
14
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qCAAqC;AAErC,cAAc,oCAAoC,CAAC;AACnD,cAAc,qDAAqD,CAAC;AACpE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wDAAwD,CAAC;AACvE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qCAAqC;AAErC,cAAc,oCAAoC,CAAC;AACnD,cAAc,qDAAqD,CAAC;AACpE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wDAAwD,CAAC;AACvE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC"}
@@ -14,6 +14,16 @@ export declare class FileTransactionManager {
14
14
  * a move operation to atomically place it at destinationPath upon applyFileOps().
15
15
  */
16
16
  stageFile(destinationPath: string, content: Buffer | string, encoding?: BufferEncoding): Promise<void>;
17
+ /**
18
+ * Stages a file for deletion during the transaction.
19
+ *
20
+ * The file is backed up before removal so it can be restored
21
+ * if the transaction is rolled back. If the file does not
22
+ * exist at apply time the operation is silently skipped.
23
+ *
24
+ * @param filePath - absolute path of the file to remove
25
+ */
26
+ stageFileRemoval(filePath: string): void;
17
27
  addFileOp(functor: Functor): void;
18
28
  addCleanupTask(functor: Functor): void;
19
29
  get pendingTasksCount(): number;
@@ -82,6 +82,29 @@ export class FileTransactionManager {
82
82
  }
83
83
  this.addFileOp(() => this.#moveFileWithBackupTracked(tempFilePath, destinationPath));
84
84
  }
85
+ /**
86
+ * Stages a file for deletion during the transaction.
87
+ *
88
+ * The file is backed up before removal so it can be restored
89
+ * if the transaction is rolled back. If the file does not
90
+ * exist at apply time the operation is silently skipped.
91
+ *
92
+ * @param filePath - absolute path of the file to remove
93
+ */
94
+ stageFileRemoval(filePath) {
95
+ this.addFileOp(async () => {
96
+ if (!fs.existsSync(filePath)) {
97
+ return;
98
+ }
99
+ // Create a backup before deleting so rollback can restore it
100
+ const tmpDir = await this.getTmpDir();
101
+ const uniqueFileName = `${crypto.randomBytes(16).toString("hex")}_backup.tmp`;
102
+ const backupPath = path.join(tmpDir, uniqueFileName);
103
+ this.#backupFiles.set(filePath, backupPath);
104
+ await _copyFile(filePath, backupPath);
105
+ await _deleteFile(filePath);
106
+ });
107
+ }
85
108
  addFileOp(functor) {
86
109
  this.#pendingFileOps.push(functor);
87
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file_transaction_manager.js","sourceRoot":"","sources":["../../source/server/file_transaction_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file_transaction_manager.js","sourceRoot":"","sources":["../../source/server/file_transaction_manager.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { AddressSpace } from "node-opcua-address-space";
2
2
  import type { OPCUACertificateManager } from "node-opcua-certificate-manager";
3
3
  import { type ICertificateKeyPairProvider } from "node-opcua-common";
4
4
  import { type OPCUAServer } from "node-opcua-server";
5
- import type { ApplicationDescriptionOptions } from "node-opcua-types";
5
+ import { type ApplicationDescriptionOptions } from "node-opcua-types";
6
6
  export interface OPCUAServerPartial extends ICertificateKeyPairProvider {
7
7
  serverInfo?: ApplicationDescriptionOptions;
8
8
  serverCertificateManager: OPCUACertificateManager;
@@ -5,12 +5,16 @@ import path from "node:path";
5
5
  import chalk from "chalk";
6
6
  import { assert } from "node-opcua-assert";
7
7
  import { invalidateCachedSecrets } from "node-opcua-common";
8
- import { checkDebugFlag, make_debugLog, make_errorLog } from "node-opcua-debug";
8
+ import { split_der, exploreCertificateInfo } from "node-opcua-crypto/web";
9
+ import { checkDebugFlag, make_debugLog, make_errorLog, make_warningLog } from "node-opcua-debug";
9
10
  import { invalidateServerCertificateCache } from "node-opcua-server";
11
+ import { StatusCodes } from "node-opcua-status-code";
12
+ import { ServerState } from "node-opcua-types";
10
13
  import { installPushCertificateManagement } from "./push_certificate_manager_helpers.js";
11
14
  const debugLog = make_debugLog("ServerConfiguration");
12
15
  const doDebug = checkDebugFlag("ServerConfiguration");
13
16
  const errorLog = make_errorLog("ServerConfiguration");
17
+ const warningLog = make_warningLog("ServerConfiguration");
14
18
  /** Relative path from cert manager root to the leaf certificate PEM. */
15
19
  const CERT_PEM_RELATIVE_PATH = "own/certs/certificate.pem";
16
20
  async function onCertificateAboutToChange(server) {
@@ -118,5 +122,142 @@ export async function installPushCertificateManagementOnServer(server) {
118
122
  }
119
123
  });
120
124
  });
125
+ // ── Install NoConfiguration certificate relaxation ─────────
126
+ //
127
+ // When the server is in NoConfiguration state (awaiting GDS
128
+ // provisioning), relax certain certificate trust/CRL errors
129
+ // so that the GDS client can connect and provision the server.
130
+ //
131
+ // This hook is ONLY installed when push certificate management
132
+ // is active — bare servers are completely unaffected.
133
+ installCertificateRelaxationHook(server);
134
+ }
135
+ // ── Certificate relaxation for NoConfiguration state ──────────
136
+ /**
137
+ * Status codes that can be relaxed during NoConfiguration state.
138
+ *
139
+ * These represent "trust infrastructure not yet set up" situations
140
+ * (missing issuers, missing CRLs) — NOT security violations
141
+ * (revoked, expired, invalid).
142
+ *
143
+ * ### Why `BadCertificateUntrusted` MUST be included (SECURITY NOTE)
144
+ *
145
+ * In `NoConfiguration` the server's trust store is **empty** — no
146
+ * trusted certificates and no CRLs exist yet. A GDS client that
147
+ * connects to provision the server will inevitably present a
148
+ * certificate that is "untrusted" simply because nothing is trusted
149
+ * yet. Removing `BadCertificateUntrusted` from this list would make
150
+ * it impossible for the GDS to connect, breaking the entire push
151
+ * certificate management provisioning workflow (chicken-and-egg).
152
+ *
153
+ * **Security boundary:** this relaxation is ONLY active while the
154
+ * server state is `ServerState.NoConfiguration`. Once the server
155
+ * transitions to `Running` (after successful provisioning) the
156
+ * relaxation hook returns the original status code unchanged and
157
+ * normal strict certificate validation applies. The accepted
158
+ * certificate is auto-trusted (see `autoTrustCertificateChain`)
159
+ * so that subsequent connections succeed under normal validation.
160
+ *
161
+ * Errors that indicate an active security violation (revoked,
162
+ * expired, invalid signature, wrong usage) are **never** relaxed,
163
+ * even in `NoConfiguration`.
164
+ */
165
+ function isRelaxableCertificateError(statusCode) {
166
+ return (StatusCodes.BadCertificateUntrusted.equals(statusCode) ||
167
+ StatusCodes.BadCertificateRevocationUnknown.equals(statusCode) ||
168
+ StatusCodes.BadCertificateIssuerRevocationUnknown.equals(statusCode) ||
169
+ StatusCodes.BadCertificateChainIncomplete.equals(statusCode));
170
+ }
171
+ /**
172
+ * Auto-trust the client's leaf certificate during NoConfiguration.
173
+ *
174
+ * Only the **leaf** (chain[0]) is placed in the trusted store —
175
+ * this is sufficient for the GDS client to reconnect after the
176
+ * server transitions to Running (the PKI verifier short-circuits
177
+ * to `Good` when the leaf itself is explicitly trusted).
178
+ *
179
+ * Issuer (CA) certificates from the chain are added to the
180
+ * **issuers/** store for chain-building purposes, but they do
181
+ * NOT become trust anchors. This prevents a single provisioning
182
+ * connection from unintentionally granting trust to every
183
+ * certificate signed by the same CA.
184
+ */
185
+ async function autoTrustCertificateChain(server, certificate) {
186
+ let chain;
187
+ try {
188
+ chain = split_der(certificate);
189
+ }
190
+ catch (err) {
191
+ warningLog("[NoConfiguration] Cannot parse certificate chain for auto-trust:", err.message);
192
+ return;
193
+ }
194
+ const cm = server.serverCertificateManager;
195
+ for (let i = 0; i < chain.length; i++) {
196
+ const cert = chain[i];
197
+ // Validate the DER structure before persisting.
198
+ // Garbage data (e.g. zero-filled buffers) parses into tiny blobs
199
+ // that are not valid X.509 certificates.
200
+ try {
201
+ exploreCertificateInfo(cert);
202
+ }
203
+ catch (err) {
204
+ warningLog("[NoConfiguration] Skipping invalid certificate in chain for auto-trust:", err.message);
205
+ continue;
206
+ }
207
+ if (i === 0) {
208
+ // Leaf certificate → trust explicitly
209
+ try {
210
+ await cm.trustCertificate(cert);
211
+ }
212
+ catch (err) {
213
+ // ENOENT can happen if another concurrent call already
214
+ // moved the cert from rejected to trusted.
215
+ if (err.code !== "ENOENT") {
216
+ warningLog("[NoConfiguration] Failed to auto-trust leaf certificate:", err.message);
217
+ }
218
+ }
219
+ }
220
+ else {
221
+ // Issuer CA certificate → add to issuers/ (chain-building
222
+ // only, does NOT establish a trust anchor)
223
+ try {
224
+ await cm.addIssuer(cert);
225
+ }
226
+ catch (err) {
227
+ warningLog("[NoConfiguration] Failed to add issuer certificate:", err.message);
228
+ }
229
+ }
230
+ }
231
+ }
232
+ /**
233
+ * Install the `onAdjustCertificateStatus` hook on every endpoint.
234
+ *
235
+ * When the server is in `ServerState.NoConfiguration`, the hook
236
+ * relaxes trust/CRL errors so that a GDS client with a valid
237
+ * full-chain certificate can connect and provision the server.
238
+ *
239
+ * The leaf certificate is auto-trusted so that after the server
240
+ * transitions to Running, the same client is accepted by normal
241
+ * validation. Issuer CAs are placed in `issuers/` for chain
242
+ * building but do not become trust anchors.
243
+ */
244
+ function installCertificateRelaxationHook(server) {
245
+ const adjustCertificateStatus = async (statusCode, certificate) => {
246
+ // Only relax in NoConfiguration state
247
+ if (server.engine.getServerState() !== ServerState.NoConfiguration) {
248
+ return statusCode;
249
+ }
250
+ // Only relax trust-infrastructure errors, NOT security errors
251
+ if (!isRelaxableCertificateError(statusCode)) {
252
+ return statusCode;
253
+ }
254
+ doDebug && warningLog(`[NoConfiguration] Relaxing certificate check:`, `${statusCode.toString()} → Good`, "(server is awaiting GDS provisioning)");
255
+ // Auto-trust the leaf certificate; issuer CAs go to issuers/
256
+ await autoTrustCertificateChain(server, certificate);
257
+ return StatusCodes.Good;
258
+ };
259
+ for (const endpoint of server.endpoints) {
260
+ endpoint.onAdjustCertificateStatus = adjustCertificateStatus;
261
+ }
121
262
  }
122
263
  //# sourceMappingURL=install_push_certificate_management.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install_push_certificate_management.js","sourceRoot":"","sources":["../../source/server/install_push_certificate_management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install_push_certificate_management.js","sourceRoot":"","sources":["../../source/server/install_push_certificate_management.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * @module node-opcua-server-configuration
3
3
  */
4
+ import fs from "node:fs";
5
+ import path from "node:path";
4
6
  import { fs as MemFs } from "memfs";
5
7
  import { BinaryStream } from "node-opcua-binary-stream";
6
8
  import { split_der, verifyCertificateChain } from "node-opcua-crypto/web";
@@ -74,6 +76,141 @@ function updateLastUpdateTime(trustList) {
74
76
  errorLog("Error updating LastUpdateTime:", err);
75
77
  }
76
78
  }
79
+ /**
80
+ * Scan the PKI store folders (trusted/certs, trusted/crl, issuers/certs,
81
+ * issuers/crl) and return the most recent modification time across all
82
+ * files. Returns null if no files are found.
83
+ *
84
+ * Uses async fs.promises to avoid blocking the event loop on startup
85
+ * when PKI directories are large or on slow filesystems.
86
+ */
87
+ async function getNewestMtimeFromPkiStore(cm, isAborted) {
88
+ const dirs = [cm.trustedFolder, cm.crlFolder, cm.issuersCertFolder, cm.issuersCrlFolder];
89
+ let newest = null;
90
+ for (const dir of dirs) {
91
+ if (isAborted?.())
92
+ break;
93
+ try {
94
+ await fs.promises.access(dir);
95
+ }
96
+ catch {
97
+ continue;
98
+ }
99
+ let entries;
100
+ try {
101
+ entries = await fs.promises.readdir(dir);
102
+ }
103
+ catch {
104
+ continue;
105
+ }
106
+ // Process stats sequentially to avoid threadpool exhaustion
107
+ // and event-loop lag when directories have thousands of files.
108
+ for (const entry of entries) {
109
+ if (isAborted?.())
110
+ return null;
111
+ try {
112
+ const stat = await fs.promises.stat(path.join(dir, entry));
113
+ if (stat.isFile() && (!newest || stat.mtime > newest)) {
114
+ newest = stat.mtime;
115
+ }
116
+ }
117
+ catch {
118
+ // skip unreadable entries
119
+ }
120
+ }
121
+ }
122
+ return newest;
123
+ }
124
+ /**
125
+ * Initialize the LastUpdateTime property from the PKI store's
126
+ * filesystem timestamps. This avoids displaying MinDate
127
+ * (0001-01-01T00:00:00Z) when the trust store already contains
128
+ * certificates or CRLs (e.g. populated by selfOnboard or addIssuer).
129
+ *
130
+ * Also subscribes to the CertificateManager's filesystem watcher
131
+ * events (certificateAdded, certificateRemoved, certificateChange,
132
+ * crlAdded, crlRemoved) so that LastUpdateTime stays current even
133
+ * when the trust store is modified externally (e.g. manual file
134
+ * copy, programmatic addIssuer/trustCertificate calls).
135
+ *
136
+ * Listeners are installed at most once per TrustList node
137
+ * (guarded by $$listenersInstalled) and are removed via
138
+ * addressSpace.registerShutdownTask to prevent leaks.
139
+ */
140
+ async function _initializeLastUpdateTimeFromFilesystem(trustList) {
141
+ const cm = trustList.$$certificateManager;
142
+ if (!cm)
143
+ return;
144
+ if (trustList.$$initaliseMTimePromise) {
145
+ return await trustList.$$initaliseMTimePromise;
146
+ }
147
+ trustList.$$initaliseMTimePromise = (async () => {
148
+ const startTime = Date.now();
149
+ let isAborted = false;
150
+ // Note: Removed abortHandler from registerShutdownTask because AddressSpace
151
+ // does not have an unregister mechanism, which causes `_shutdownTasks` to leak
152
+ // continuously if promoteTrustList is called multiple times.
153
+ // Sequential scanning is fast enough that it won't block shutdown significantly.
154
+ try {
155
+ const lastUpdateTimeNode = trustList.lastUpdateTime;
156
+ if (!lastUpdateTimeNode)
157
+ return;
158
+ // Seed the initial timestamp from the filesystem only when
159
+ // the current value is still unset (MinDate). The event
160
+ // listeners below must always be installed regardless, so we
161
+ // must NOT return early here.
162
+ const currentValue = lastUpdateTimeNode.readValue().value.value;
163
+ if (!currentValue || currentValue.getTime() <= 0) {
164
+ const newest = await getNewestMtimeFromPkiStore(cm, () => isAborted);
165
+ if (isAborted) {
166
+ console.log(`[node-opcua] _initializeLastUpdateTimeFromFilesystem aborted for ${trustList.browseName.toString()}`);
167
+ return;
168
+ }
169
+ if (newest) {
170
+ lastUpdateTimeNode.setValueFromSource({
171
+ dataType: DataType.DateTime,
172
+ value: newest
173
+ });
174
+ doDebug && debugLog("Initialized LastUpdateTime from filesystem:", newest.toISOString());
175
+ }
176
+ }
177
+ // Guard: install listeners at most once per TrustList node
178
+ // to prevent duplicate handler invocation on re-promotion.
179
+ if (trustList.$$listenersInstalled) {
180
+ return;
181
+ }
182
+ trustList.$$listenersInstalled = true;
183
+ // Subscribe to CertificateManager filesystem watcher events
184
+ // so LastUpdateTime stays current when the store is modified
185
+ // outside of OPC UA methods (e.g. addIssuer, trustCertificate,
186
+ // or manual file operations).
187
+ const _updateNow = () => {
188
+ updateLastUpdateTime(trustList);
189
+ };
190
+ const events = ["certificateAdded", "certificateRemoved", "certificateChange", "crlAdded", "crlRemoved"];
191
+ for (const event of events) {
192
+ cm.on(event, _updateNow);
193
+ }
194
+ // Clean up listeners when the address space shuts down
195
+ // to avoid MaxListenersExceededWarning and memory leaks.
196
+ // Guard: addressSpace may be null if dispose() was called
197
+ // concurrently (e.g. fast test teardown).
198
+ if (trustList.addressSpace) {
199
+ trustList.addressSpace.registerShutdownTask(() => {
200
+ for (const event of events) {
201
+ cm.removeListener(event, _updateNow);
202
+ }
203
+ trustList.$$listenersInstalled = false;
204
+ });
205
+ }
206
+ console.log(`[node-opcua] _initializeLastUpdateTimeFromFilesystem took ${Date.now() - startTime}ms for ${trustList.browseName.toString()}`);
207
+ }
208
+ finally {
209
+ trustList.$$initaliseMTimePromise = undefined;
210
+ }
211
+ })();
212
+ return await trustList.$$initaliseMTimePromise;
213
+ }
77
214
  async function applyTrustListChanges(cm, trustListData) {
78
215
  try {
79
216
  // Automatically update specifiedLists mask
@@ -360,9 +497,15 @@ async function _removeCertificate(inputArguments, context) {
360
497
  }
361
498
  let counter = 0;
362
499
  export async function promoteTrustList(trustList) {
500
+ const trustListEx = trustList;
501
+ // Prevent double-binding if called multiple times testing
502
+ if (trustListEx.$$promoted) {
503
+ await _initializeLastUpdateTimeFromFilesystem(trustListEx);
504
+ return;
505
+ }
506
+ trustListEx.$$promoted = true;
363
507
  const filename = `/tmpFile${counter}`;
364
508
  counter += 1;
365
- const trustListEx = trustList;
366
509
  // Store filename for use in _closeAndUpdate
367
510
  trustListEx.$$filename = filename;
368
511
  // Initialize write lock flag
@@ -427,6 +570,11 @@ export async function promoteTrustList(trustList) {
427
570
  openWithMasks.bindMethod(_openWithMaskCallback);
428
571
  addCertificate.bindMethod(_addCertificate);
429
572
  removeCertificate.bindMethod(_removeCertificate);
573
+ function _closeCallback(inputArgs, context, callback) {
574
+ trustListEx.$$openedForWrite = false;
575
+ _close_asyncExecutionFunction.call(this, inputArgs, context, callback);
576
+ }
577
+ close.bindMethod(_closeCallback);
430
578
  // Wrapper to pass the underlying close method to _closeAndUpdate
431
579
  closeAndUpdate?.bindMethod(async function (inputArguments, context) {
432
580
  return _closeAndUpdate.call(this, inputArguments, context, _close_asyncExecutionFunction);
@@ -437,12 +585,16 @@ export async function promoteTrustList(trustList) {
437
585
  return;
438
586
  }
439
587
  fileType.open?.bindMethod(_openCallback);
588
+ fileType.close?.bindMethod(_closeCallback);
440
589
  fileType.addCertificate.bindMethod(_addCertificate);
441
590
  fileType.removeCertificate.bindMethod(_removeCertificate);
442
591
  fileType.openWithMasks?.bindMethod(_openWithMaskCallback);
443
592
  fileType.closeAndUpdate?.bindMethod(_closeAndUpdate);
444
593
  }
445
594
  install_method_handle_on_TrustListType(trustList.addressSpace);
595
+ // Initialize LastUpdateTime from the PKI store's filesystem timestamps
596
+ // so it doesn't show MinDate (0001-01-01) when files already exist.
597
+ await _initializeLastUpdateTimeFromFilesystem(trustListEx);
446
598
  }
447
599
  export function installAccessRestrictionOnTrustList(trustList) {
448
600
  for (const m of trustList.getComponents()) {
@@ -1 +1 @@
1
- {"version":3,"file":"promote_trust_list.js","sourceRoot":"","sources":["../../source/server/promote_trust_list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promote_trust_list.js","sourceRoot":"","sources":["../../source/server/promote_trust_list.ts"],"names":[],"mappings":"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"}
@@ -91,18 +91,24 @@ export async function executeCreateSigningRequest(serverImpl, certificateGroupId
91
91
  serverImpl.tmpCertificateManager = undefined;
92
92
  });
93
93
  }
94
- const options = {
95
- applicationUri: serverImpl.applicationUri,
96
- subject: subjectName
97
- };
98
- const activeCertificateManager = serverImpl.tmpCertificateManager || certificateManager;
99
- await activeCertificateManager.initialize();
100
- const csrFile = await activeCertificateManager.createCertificateRequest(options);
101
- const csrPEM = await fs.promises.readFile(csrFile, "utf8");
102
- const certificateSigningRequest = convertPEMtoDER(csrPEM);
103
- return {
104
- certificateSigningRequest,
105
- statusCode: StatusCodes.Good
106
- };
94
+ try {
95
+ const options = {
96
+ applicationUri: serverImpl.applicationUri,
97
+ subject: subjectName
98
+ };
99
+ const activeCertificateManager = serverImpl.tmpCertificateManager || certificateManager;
100
+ await activeCertificateManager.initialize();
101
+ const csrFile = await activeCertificateManager.createCertificateRequest(options);
102
+ const csrPEM = await fs.promises.readFile(csrFile, "utf8");
103
+ const certificateSigningRequest = convertPEMtoDER(csrPEM);
104
+ return {
105
+ certificateSigningRequest,
106
+ statusCode: StatusCodes.Good
107
+ };
108
+ }
109
+ catch (err) {
110
+ errorLog("CreateSigningRequest failed during CSR generation:", err.message, "subject=", subjectName, "applicationUri=", serverImpl.applicationUri);
111
+ return { statusCode: StatusCodes.BadInternalError };
112
+ }
107
113
  }
108
114
  //# sourceMappingURL=create_signing_request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create_signing_request.js","sourceRoot":"","sources":["../../../source/server/push_certificate_manager/create_signing_request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create_signing_request.js","sourceRoot":"","sources":["../../../source/server/push_certificate_manager/create_signing_request.ts"],"names":[],"mappings":"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"}