node-opcua-server-configuration 2.186.3 → 2.186.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"push_certificate_management_client.d.ts","sourceRoot":"","sources":["../../source/clientTools/push_certificate_management_client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAgB,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAyB,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE3F,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EACR,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAoCnD,qBAAa,eAAgB,SAAQ,UAAW,YAAW,UAAU;IAQtD,MAAM,EAAE,MAAM;IAPzB,OAAO,CAAC,oBAAoB,CAAC,CAAS;IACtC,OAAO,CAAC,oBAAoB,CAAC,CAAS;IACtC,OAAO,CAAC,uBAAuB,CAAC,CAAS;IACzC,OAAO,CAAC,mBAAmB,CAAC,CAAS;IAErC,YACI,OAAO,EAAE,kBAAkB,EACpB,MAAM,EAAE,MAAM,EAGxB;IACD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBvC;IAED,UAAgB,iBAAiB,kBAGhC;IAEK,aAAa,CAAC,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBlE;IAEK,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAoBvC;IAEK,cAAc,CAAC,gBAAgB,EAAE,WAAW,GAAG,WAAW,EAAE,EAAE,oBAAoB,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAsBtH;IAEK,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAc9F;IAED;;;OAGG;IACG,0BAA0B,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAS7D;IACK,mCAAmC,CAAC,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CASnG;IAEK,2BAA2B,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAOlF;CACJ;AACD,qBAAa,gBAAgB;IAEd,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,MAAM;IAFzB,YACW,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,MAAM,EACrB;IACE,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAW7C;IACK,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC,CAU7C;CACJ;AACD,qBAAa,+BAAgC,YAAW,sBAAsB;IAC1E,OAAc,mCAAmC,EAAE,MAAM,CAA4B;IAE9E,OAAO,EAAE,kBAAkB,CAAC;IAEnC,YAAY,OAAO,EAAE,kBAAkB,EAEtC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACU,oBAAoB,CAC7B,kBAAkB,EAAE,MAAM,GAAG,MAAM,EACnC,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAClC,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,oBAAoB,CAAC,EAAE,OAAO,EAC9B,KAAK,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,0BAA0B,CAAC,CAyBrC;IAED;;;;;;;;;;OAUG;IACU,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAqB7D;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACU,iBAAiB,CAC1B,kBAAkB,EAAE,MAAM,GAAG,MAAM,EACnC,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAClC,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACpC;;;;;;;;;;OAUG;IACU,iBAAiB,CAC1B,kBAAkB,EAAE,MAAM,GAAG,MAAM,EACnC,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAClC,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GAAG,MAAM,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IA2CpC;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAY/C;IAEY,6BAA6B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAM9D;IAEY,qBAAqB,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhF;IAED;;;OAGG;IACU,mBAAmB,CAC5B,UAAU,EAAE,iBAAiB,GAAG,yBAAyB,GAAG,uBAAuB,GACpF,OAAO,CAAC,gBAAgB,CAAC,CAU3B;IACY,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAE5D;IACY,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAE1D;CACJ"}
1
+ {"version":3,"file":"push_certificate_management_client.d.ts","sourceRoot":"","sources":["../../source/clientTools/push_certificate_management_client.ts"],"names":[],"mappings":"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"}
@@ -108,10 +108,13 @@ export class TrustListClient extends ClientFile {
108
108
  objectId: this.nodeId
109
109
  };
110
110
  const callMethodResult = await this.session.call(methodToCall);
111
+ // CloseAndUpdate closes the file whether or not the update applied, so
112
+ // the handle is gone either way; keeping it would make the next Open
113
+ // fail with "File has already be opened".
114
+ this.fileHandle = 0;
111
115
  if (callMethodResult.statusCode.isNotGood()) {
112
116
  throw new Error(callMethodResult.statusCode.name);
113
117
  }
114
- this.fileHandle = 0;
115
118
  return callMethodResult.outputArguments?.[0].value;
116
119
  }
117
120
  async addCertificate(certificateChain, isTrustedCertificate) {
@@ -1 +1 @@
1
- {"version":3,"file":"push_certificate_management_client.js","sourceRoot":"","sources":["../../source/clientTools/push_certificate_management_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push_certificate_management_client.js","sourceRoot":"","sources":["../../source/clientTools/push_certificate_management_client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { CertificateManager } from "node-opcua-certificate-manager";
2
+ /** Which list of the TrustList a provisionally trusted certificate sits in. */
3
+ export type ProvisionalList = "trusted" | "issuers";
4
+ /** The certificate identified by `thumbprint` was put in `list` only because the server is in the setup state. */
5
+ export declare function recordProvisionalTrust(cm: CertificateManager, list: ProvisionalList, thumbprint: string): Promise<void>;
6
+ /** A TrustList write put these certificates in `list`: they are no longer provisional. */
7
+ export declare function confirmTrust(cm: CertificateManager, list: ProvisionalList, thumbprints: string[]): Promise<void>;
8
+ /**
9
+ * Thumbprints (lowercase hex SHA-1, as the PKI store keys them) of the leaf
10
+ * certificate of each certificate file in a PKI folder. A file that cannot be
11
+ * parsed is skipped with a warning rather than failing the caller.
12
+ */
13
+ export declare function leafThumbprintsIn(folder: string): Promise<string[]>;
14
+ /** Whether the trusted list holds at least one certificate that was not trusted provisionally. */
15
+ export declare function hasConfirmedTrust(cm: CertificateManager): Promise<boolean>;
16
+ /**
17
+ * Remove every provisionally trusted certificate from the TrustList. An
18
+ * issuer that a remaining trusted certificate still needs is kept. Returns
19
+ * the number of certificates removed.
20
+ */
21
+ export declare function withdrawProvisionalTrust(cm: CertificateManager): Promise<number>;
22
+ /**
23
+ * `a` and `b` back two CertificateGroups with one PKI store. A TrustList
24
+ * write to either group then cannot replace its list without also removing
25
+ * the other group's certificates (see applyTrustListChanges).
26
+ */
27
+ export declare function markSharedTrustListStore(a: CertificateManager, b: CertificateManager): void;
28
+ export declare function isSharedTrustListStore(cm: CertificateManager): boolean;
29
+ //# sourceMappingURL=application_setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application_setup.d.ts","sourceRoot":"","sources":["../../source/server/application_setup.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AASzE,+EAA+E;AAC/E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AA+CpD,kHAAkH;AAClH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7H;AAED,0FAA0F;AAC1F,wBAAsB,YAAY,CAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAStH;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAczE;AAED,kGAAkG;AAClG,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhF;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBtF;AAMD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAK3F;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAEtE"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * @module node-opcua-server-configuration
3
+ *
4
+ * Clients trusted automatically in the application setup state.
5
+ *
6
+ * While a server reports `ServerState.NoConfiguration` (the application setup
7
+ * state of OPC 10000-12 §G.2), push certificate management admits any client
8
+ * and trusts its certificate, so that a CertificateManager can reach the
9
+ * server for the first time. Anyone else who connects in that window is
10
+ * trusted the same way. This module remembers which certificates were
11
+ * trusted that way (leaves in the trusted list, and the issuers that came
12
+ * with them), so that they can be withdrawn when the server leaves the setup
13
+ * state, unless a TrustList written since then kept them.
14
+ *
15
+ * The record is kept next to the PKI store, so a restart in the middle of the
16
+ * setup does not turn provisional trust into permanent trust.
17
+ */
18
+ import fs from "node:fs";
19
+ import path from "node:path";
20
+ import { makeSHA1Thumbprint, readCertificateChainAsync } from "node-opcua-crypto";
21
+ import { make_errorLog, make_warningLog } from "node-opcua-debug";
22
+ const warningLog = make_warningLog("ServerConfiguration");
23
+ const errorLog = make_errorLog("ServerConfiguration");
24
+ const RECORD_FILE = "provisional_trust.json";
25
+ const records = new WeakMap();
26
+ const key = (list, thumbprint) => `${list}:${thumbprint}`;
27
+ function recordFile(cm) {
28
+ return path.join(cm.rootDir, RECORD_FILE);
29
+ }
30
+ function load(cm) {
31
+ let record = records.get(cm);
32
+ if (record)
33
+ return record;
34
+ record = new Set();
35
+ const file = recordFile(cm);
36
+ try {
37
+ if (fs.existsSync(file)) {
38
+ for (const entry of JSON.parse(fs.readFileSync(file, "utf8"))) {
39
+ record.add(entry);
40
+ }
41
+ }
42
+ }
43
+ catch (err) {
44
+ // The record is written atomically (see save), so this is not a torn
45
+ // write: someone edited or damaged it. Nothing here can tell which
46
+ // trusted certificates were provisional any more; say so loudly.
47
+ errorLog(`[ApplicationSetup] cannot read ${file}: certificates trusted automatically during the setup will not be withdrawn.`, err.message);
48
+ }
49
+ records.set(cm, record);
50
+ return record;
51
+ }
52
+ async function save(cm, record) {
53
+ const file = recordFile(cm);
54
+ if (record.size === 0) {
55
+ await fs.promises.rm(file, { force: true });
56
+ return;
57
+ }
58
+ // Write-then-rename: a crash mid-write must not leave a record that
59
+ // cannot be read, which would make provisional trust permanent.
60
+ const tmp = `${file}.tmp`;
61
+ await fs.promises.writeFile(tmp, JSON.stringify([...record], null, 1), "utf8");
62
+ await fs.promises.rename(tmp, file);
63
+ }
64
+ /** The certificate identified by `thumbprint` was put in `list` only because the server is in the setup state. */
65
+ export async function recordProvisionalTrust(cm, list, thumbprint) {
66
+ const record = load(cm);
67
+ const entry = key(list, thumbprint);
68
+ if (record.has(entry))
69
+ return;
70
+ record.add(entry);
71
+ await save(cm, record);
72
+ }
73
+ /** A TrustList write put these certificates in `list`: they are no longer provisional. */
74
+ export async function confirmTrust(cm, list, thumbprints) {
75
+ const record = load(cm);
76
+ let changed = false;
77
+ for (const thumbprint of thumbprints) {
78
+ changed = record.delete(key(list, thumbprint)) || changed;
79
+ }
80
+ if (changed) {
81
+ await save(cm, record);
82
+ }
83
+ }
84
+ /**
85
+ * Thumbprints (lowercase hex SHA-1, as the PKI store keys them) of the leaf
86
+ * certificate of each certificate file in a PKI folder. A file that cannot be
87
+ * parsed is skipped with a warning rather than failing the caller.
88
+ */
89
+ export async function leafThumbprintsIn(folder) {
90
+ if (!fs.existsSync(folder))
91
+ return [];
92
+ const thumbprints = [];
93
+ for (const file of await fs.promises.readdir(folder)) {
94
+ const ext = path.extname(file);
95
+ if (ext !== ".der" && ext !== ".pem")
96
+ continue;
97
+ try {
98
+ const chain = await readCertificateChainAsync(path.join(folder, file));
99
+ if (chain.length > 0)
100
+ thumbprints.push(makeSHA1Thumbprint(chain[0]).toString("hex"));
101
+ }
102
+ catch (err) {
103
+ warningLog(`[TrustList] skipping ${path.join(folder, file)}: not a certificate`, err.message);
104
+ }
105
+ }
106
+ return thumbprints;
107
+ }
108
+ /** Whether the trusted list holds at least one certificate that was not trusted provisionally. */
109
+ export async function hasConfirmedTrust(cm) {
110
+ const record = load(cm);
111
+ return (await leafThumbprintsIn(cm.trustedFolder)).some((thumbprint) => !record.has(key("trusted", thumbprint)));
112
+ }
113
+ /**
114
+ * Remove every provisionally trusted certificate from the TrustList. An
115
+ * issuer that a remaining trusted certificate still needs is kept. Returns
116
+ * the number of certificates removed.
117
+ */
118
+ export async function withdrawProvisionalTrust(cm) {
119
+ const record = load(cm);
120
+ let withdrawn = 0;
121
+ const entries = [...record];
122
+ for (const entry of entries.filter((e) => e.startsWith("trusted:"))) {
123
+ if (await cm.removeTrustedCertificate(entry.slice("trusted:".length)))
124
+ withdrawn++;
125
+ }
126
+ for (const entry of entries.filter((e) => e.startsWith("issuers:"))) {
127
+ const issuer = await cm.removeIssuer(entry.slice("issuers:".length));
128
+ if (!issuer)
129
+ continue;
130
+ if (await cm.isIssuerInUseByTrustedCertificate(issuer)) {
131
+ await cm.addIssuer(issuer);
132
+ }
133
+ else {
134
+ withdrawn++;
135
+ }
136
+ }
137
+ record.clear();
138
+ await save(cm, record);
139
+ return withdrawn;
140
+ }
141
+ // ── TrustList stores shared between CertificateGroups ─────────────
142
+ const sharedStores = new WeakSet();
143
+ /**
144
+ * `a` and `b` back two CertificateGroups with one PKI store. A TrustList
145
+ * write to either group then cannot replace its list without also removing
146
+ * the other group's certificates (see applyTrustListChanges).
147
+ */
148
+ export function markSharedTrustListStore(a, b) {
149
+ if (a === b || path.resolve(a.rootDir) === path.resolve(b.rootDir)) {
150
+ sharedStores.add(a);
151
+ sharedStores.add(b);
152
+ }
153
+ }
154
+ export function isSharedTrustListStore(cm) {
155
+ return sharedStores.has(cm);
156
+ }
157
+ //# sourceMappingURL=application_setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application_setup.js","sourceRoot":"","sources":["../../source/server/application_setup.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,50 @@ export interface InstallPushCertificateManagementOnServerOptions {
46
46
  * @defaultValue true
47
47
  */
48
48
  closeChannelsOnApplyChanges?: boolean;
49
+ /**
50
+ * How the server leaves the application setup state
51
+ * (`ServerState.NoConfiguration`, OPC 10000-12 §G.2).
52
+ */
53
+ applicationSetup?: ApplicationSetupOptions;
54
+ }
55
+ export interface ApplicationSetupOptions {
56
+ /**
57
+ * Leave the application setup state automatically once the server is
58
+ * configured. §G.2: "Once an application has been configured it
59
+ * automatically leaves the application setup state. This step is
60
+ * necessary to ensure that security is not compromised."
61
+ *
62
+ * While the server reports `NoConfiguration`, push certificate
63
+ * management admits any client and trusts its certificate, so that a
64
+ * CertificateManager can reach it for the first time (see
65
+ * `installCertificateRelaxationHook`). With this option:
66
+ *
67
+ * - the server moves to `Running` when ApplyChanges has put a
68
+ * CA-issued certificate into service and the TrustList holds a
69
+ * certificate that was not trusted automatically;
70
+ * - on leaving `NoConfiguration` (this way or when the application sets
71
+ * the state itself), the certificates trusted automatically are
72
+ * removed again, except those a TrustList write kept (CloseAndUpdate
73
+ * of the trusted list, AddCertificate). Whoever configured the server
74
+ * stays trusted through the TrustList it wrote; anyone else who
75
+ * connected during the setup does not.
76
+ *
77
+ * Without it the application decides when the setup ends, and the
78
+ * certificates trusted automatically stay trusted.
79
+ *
80
+ * @defaultValue false
81
+ */
82
+ leaveWhenConfigured?: boolean;
49
83
  }
50
84
  export declare function installPushCertificateManagementOnServer(server: OPCUAServer, options?: InstallPushCertificateManagementOnServerOptions): Promise<void>;
85
+ /**
86
+ * Close every SecureChannel, and the Sessions on it, whose client
87
+ * certificate the server no longer accepts. In the setup state an untrusted
88
+ * certificate is still admitted, so only a revoked or otherwise invalid one
89
+ * closes the channel then. Returns the number of channels closed.
90
+ *
91
+ * The check never trusts a certificate on its own: the relaxation hook,
92
+ * which does, is not called.
93
+ */
94
+ export declare function closeChannelsNoLongerTrusted(server: OPCUAServer): Promise<number>;
51
95
  //# sourceMappingURL=install_push_certificate_management.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install_push_certificate_management.d.ts","sourceRoot":"","sources":["../../source/server/install_push_certificate_management.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAEH,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAGnC,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,KAAK,6BAA6B,EAAe,MAAM,kBAAkB,CAAC;AAanF,MAAM,WAAW,kBAAmB,SAAQ,2BAA2B;IACnE,UAAU,CAAC,EAAE,6BAA6B,CAAC;IAC3C,wBAAwB,EAAE,uBAAuB,CAAC;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE;QAAE,YAAY,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IACxC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACzD,4BAA4B,IAAI,IAAI,CAAC;IACrC,2BAA2B,IAAI,yBAAyB,CAAC;CAC5D;AAsKD,MAAM,WAAW,+CAA+C;IAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,wBAAsB,wCAAwC,CAC1D,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,+CAA+C,GAC1D,OAAO,CAAC,IAAI,CAAC,CAoIf"}
1
+ {"version":3,"file":"install_push_certificate_management.d.ts","sourceRoot":"","sources":["../../source/server/install_push_certificate_management.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAEH,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAGnC,MAAM,mBAAmB,CAAC;AAU3B,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,KAAK,6BAA6B,EAAe,MAAM,kBAAkB,CAAC;AAcnF,MAAM,WAAW,kBAAmB,SAAQ,2BAA2B;IACnE,UAAU,CAAC,EAAE,6BAA6B,CAAC;IAC3C,wBAAwB,EAAE,uBAAuB,CAAC;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE;QAAE,YAAY,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IACxC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACzD,4BAA4B,IAAI,IAAI,CAAC;IACrC,2BAA2B,IAAI,yBAAyB,CAAC;CAC5D;AAsKD,MAAM,WAAW,+CAA+C;IAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAED,MAAM,WAAW,uBAAuB;IACpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAsB,wCAAwC,CAC1D,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,+CAA+C,GAC1D,OAAO,CAAC,IAAI,CAAC,CAwKf;AASD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAOjF"}
@@ -7,10 +7,11 @@ import { assert } from "node-opcua-assert";
7
7
  import { OPCUACertificateManager } from "node-opcua-certificate-manager";
8
8
  import { DiskCertificateKeyPairProvider, ResolvedCertificateKeyPairProvider, resolvePrivateKeyProviderIfNeeded } from "node-opcua-common";
9
9
  import { readPrivateKey } from "node-opcua-crypto";
10
- import { exploreCertificateInfo, split_der } from "node-opcua-crypto/web";
10
+ import { exploreCertificateInfo, makeSHA1Thumbprint, split_der, verifyCertificateSignature } from "node-opcua-crypto/web";
11
11
  import { checkDebugFlag, make_debugLog, make_errorLog, make_warningLog } from "node-opcua-debug";
12
12
  import { StatusCodes } from "node-opcua-status-code";
13
13
  import { ServerState } from "node-opcua-types";
14
+ import { hasConfirmedTrust, leafThumbprintsIn, recordProvisionalTrust, withdrawProvisionalTrust } from "./application_setup.js";
14
15
  import { installPushCertificateManagement } from "./push_certificate_manager_helpers.js";
15
16
  const debugLog = make_debugLog("ServerConfiguration");
16
17
  const doDebug = checkDebugFlag("ServerConfiguration");
@@ -169,6 +170,7 @@ async function install() {
169
170
  }
170
171
  export async function installPushCertificateManagementOnServer(server, options) {
171
172
  const closeChannelsOnApplyChanges = options?.closeChannelsOnApplyChanges ?? true;
173
+ const leaveWhenConfigured = options?.applicationSetup?.leaveWhenConfigured ?? false;
172
174
  if (!server.engine?.addressSpace) {
173
175
  throw new Error("Server must have a valid address space. " +
174
176
  "You need to call installPushCertificateManagementOnServer after server has been initialized");
@@ -222,6 +224,9 @@ export async function installPushCertificateManagementOnServer(server, options)
222
224
  setImmediate(async () => {
223
225
  try {
224
226
  await onApplyChangesCompleted(server, closeChannelsOnApplyChanges);
227
+ if (leaveWhenConfigured) {
228
+ await leaveApplicationSetupIfConfigured(server, cm);
229
+ }
225
230
  }
226
231
  catch (err) {
227
232
  errorLog("onApplyChangesCompleted error:", err.message);
@@ -236,8 +241,10 @@ export async function installPushCertificateManagementOnServer(server, options)
236
241
  // write a certificate straight into serverCertificateManager's
237
242
  // trusted-certs folder. Only the method path emits "trustListUpdated",
238
243
  // so a consumer waiting on it to learn that the server has been
239
- // provisioned - to leave NoConfiguration, say - would never hear about
240
- // a TrustList populated the other way.
244
+ // provisioned would never hear about a TrustList populated the other
245
+ // way. It is not a signal to leave NoConfiguration: the first client
246
+ // trusted automatically populates the TrustList too. Use
247
+ // `applicationSetup.leaveWhenConfigured` for that.
241
248
  //
242
249
  // This deliberately does NOT emit "applyChangesCompleted": that event
243
250
  // means "a certificate rotation was applied" and carries channel
@@ -287,7 +294,128 @@ export async function installPushCertificateManagementOnServer(server, options)
287
294
  //
288
295
  // This hook is ONLY installed when push certificate management
289
296
  // is active — bare servers are completely unaffected.
290
- installCertificateRelaxationHook(server);
297
+ installCertificateRelaxationHook(server, leaveWhenConfigured);
298
+ // ── Re-evaluate open channels when the TrustList changes ──
299
+ //
300
+ // §7.8.2.5: "When the TrustList changes the Server shall re-evaluate the
301
+ // Certificate associated with any open Sessions and SecureChannels.
302
+ // Sessions or SecureChannels with an untrusted or revoked Certificate
303
+ // shall be closed." The event fires inside the method, before its
304
+ // response is on the wire; the delay gives the Client that changed the
305
+ // TrustList time to receive it before its own channel may be closed
306
+ // ("This process may not complete before the Method returns").
307
+ serverConfigurationPriv.$pushCertificateManager.on("trustListUpdated", () => {
308
+ setTimeout(() => {
309
+ closeChannelsNoLongerTrusted(server).catch((err) => errorLog("[TrustList] cannot re-evaluate open channels:", err.message));
310
+ }, REEVALUATION_DELAY_MS);
311
+ });
312
+ if (leaveWhenConfigured) {
313
+ withdrawProvisionalTrustOnLeavingSetup(server, cm);
314
+ // The TrustList may be written after ApplyChanges: without a
315
+ // transaction CloseAndUpdate applies on its own, so check then too.
316
+ serverConfigurationPriv.$pushCertificateManager.on("trustListUpdated", () => {
317
+ setTimeout(() => {
318
+ leaveApplicationSetupIfConfigured(server, cm).catch((err) => errorLog("[ApplicationSetup] cannot evaluate the setup state:", err.message));
319
+ }, REEVALUATION_DELAY_MS);
320
+ });
321
+ }
322
+ }
323
+ // ── Re-evaluating open channels (§7.8.2.5) ─────────────────────
324
+ const reevaluations = new WeakMap();
325
+ /** How long after a TrustList change open channels are re-evaluated (see the "trustListUpdated" listener). */
326
+ const REEVALUATION_DELAY_MS = 250;
327
+ /**
328
+ * Close every SecureChannel, and the Sessions on it, whose client
329
+ * certificate the server no longer accepts. In the setup state an untrusted
330
+ * certificate is still admitted, so only a revoked or otherwise invalid one
331
+ * closes the channel then. Returns the number of channels closed.
332
+ *
333
+ * The check never trusts a certificate on its own: the relaxation hook,
334
+ * which does, is not called.
335
+ */
336
+ export function closeChannelsNoLongerTrusted(server) {
337
+ const run = (reevaluations.get(server) ?? Promise.resolve()).then(() => _closeChannelsNoLongerTrusted(server));
338
+ reevaluations.set(server, run.catch(() => undefined));
339
+ return run;
340
+ }
341
+ async function _closeChannelsNoLongerTrusted(server) {
342
+ const cm = server.serverCertificateManager;
343
+ let closed = 0;
344
+ for (const endpoint of server.endpoints) {
345
+ for (const channel of endpoint.getChannels()) {
346
+ const certificate = channel.clientCertificate;
347
+ if (!certificate) {
348
+ continue;
349
+ }
350
+ const statusCode = await cm.checkCertificate(certificate);
351
+ if (statusCode.isGood()) {
352
+ continue;
353
+ }
354
+ if (server.engine.getServerState() === ServerState.NoConfiguration && isRelaxableCertificateError(statusCode)) {
355
+ continue;
356
+ }
357
+ warningLog(`[TrustList] closing SecureChannel ${channel.channelId}: client certificate is now ${statusCode.name}`);
358
+ for (const session of server.engine.getSessions()) {
359
+ if (session.channel === channel) {
360
+ server.engine.closeSession(session.authenticationToken, false, "Terminated");
361
+ }
362
+ }
363
+ channel.close();
364
+ closed++;
365
+ }
366
+ }
367
+ return closed;
368
+ }
369
+ // ── Leaving the application setup state (§G.2) ─────────────────
370
+ function isSelfSigned(certificate) {
371
+ try {
372
+ return verifyCertificateSignature(certificate, certificate);
373
+ }
374
+ catch {
375
+ return false;
376
+ }
377
+ }
378
+ /**
379
+ * Move to Running once ApplyChanges has put a CA-issued certificate into
380
+ * service and the TrustList holds a certificate that was not trusted
381
+ * automatically. Leaving earlier would lock every client out, the
382
+ * CertificateManager included.
383
+ */
384
+ async function leaveApplicationSetupIfConfigured(server, cm) {
385
+ if (server.engine.getServerState() !== ServerState.NoConfiguration) {
386
+ return;
387
+ }
388
+ if (isSelfSigned(server.getCertificate())) {
389
+ doDebug && debugLog("[ApplicationSetup] still self-signed: staying in NoConfiguration");
390
+ return;
391
+ }
392
+ if (!(await hasConfirmedTrust(cm))) {
393
+ warningLog("[ApplicationSetup] a CA-issued certificate is in service but no TrustList was written: staying in NoConfiguration");
394
+ return;
395
+ }
396
+ warningLog("[ApplicationSetup] configured: leaving NoConfiguration");
397
+ server.engine.setServerState(ServerState.Running);
398
+ }
399
+ /** When the server leaves NoConfiguration, remove the certificates trusted automatically during the setup. */
400
+ function withdrawProvisionalTrustOnLeavingSetup(server, cm) {
401
+ const onStateChanged = (oldState, newState) => {
402
+ if (newState === ServerState.Shutdown) {
403
+ server.engine.removeListener("serverStateChanged", onStateChanged);
404
+ return;
405
+ }
406
+ if (oldState !== ServerState.NoConfiguration || newState === ServerState.NoConfiguration) {
407
+ return;
408
+ }
409
+ withdrawProvisionalTrust(cm)
410
+ .then(async (withdrawn) => {
411
+ if (withdrawn > 0) {
412
+ warningLog(`[ApplicationSetup] setup ended: ${withdrawn} certificate(s) trusted automatically are no longer trusted`);
413
+ }
414
+ await closeChannelsNoLongerTrusted(server);
415
+ })
416
+ .catch((err) => errorLog("[ApplicationSetup] cannot withdraw provisional trust:", err.message));
417
+ };
418
+ server.engine.on("serverStateChanged", onStateChanged);
291
419
  }
292
420
  // ── Certificate relaxation for NoConfiguration state ──────────
293
421
  /**
@@ -313,7 +441,10 @@ export async function installPushCertificateManagementOnServer(server, options)
313
441
  * relaxation hook returns the original status code unchanged and
314
442
  * normal strict certificate validation applies. The accepted
315
443
  * certificate is auto-trusted (see `autoTrustCertificateChain`)
316
- * so that subsequent connections succeed under normal validation.
444
+ * so that subsequent connections succeed under normal validation;
445
+ * with `applicationSetup.leaveWhenConfigured` that trust is
446
+ * withdrawn again when the setup ends, unless a TrustList write
447
+ * kept it.
317
448
  *
318
449
  * Errors that indicate an active security violation (revoked,
319
450
  * expired, invalid signature, wrong usage) are **never** relaxed,
@@ -339,7 +470,7 @@ function isRelaxableCertificateError(statusCode) {
339
470
  * connection from unintentionally granting trust to every
340
471
  * certificate signed by the same CA.
341
472
  */
342
- async function autoTrustCertificateChain(server, certificate) {
473
+ async function autoTrustCertificateChain(server, certificate, recordProvisional) {
343
474
  let chain;
344
475
  try {
345
476
  chain = split_der(certificate);
@@ -362,8 +493,12 @@ async function autoTrustCertificateChain(server, certificate) {
362
493
  continue;
363
494
  }
364
495
  if (i === 0) {
365
- // Leaf certificate → trust explicitly
496
+ // Leaf certificate → trust explicitly, and remember that it was
497
+ // trusted only because the server is in the setup state.
366
498
  try {
499
+ if (recordProvisional && (await cm.isCertificateTrusted(cert)) !== "Good") {
500
+ await recordProvisionalTrust(cm, "trusted", makeSHA1Thumbprint(cert).toString("hex"));
501
+ }
367
502
  await cm.trustCertificate(cert);
368
503
  }
369
504
  catch (err) {
@@ -378,6 +513,12 @@ async function autoTrustCertificateChain(server, certificate) {
378
513
  // Issuer CA certificate → add to issuers/ (chain-building
379
514
  // only, does NOT establish a trust anchor)
380
515
  try {
516
+ if (recordProvisional) {
517
+ const thumbprint = makeSHA1Thumbprint(cert).toString("hex");
518
+ if (!(await leafThumbprintsIn(cm.issuersCertFolder)).includes(thumbprint)) {
519
+ await recordProvisionalTrust(cm, "issuers", thumbprint);
520
+ }
521
+ }
381
522
  await cm.addIssuer(cert);
382
523
  }
383
524
  catch (err) {
@@ -398,7 +539,7 @@ async function autoTrustCertificateChain(server, certificate) {
398
539
  * validation. Issuer CAs are placed in `issuers/` for chain
399
540
  * building but do not become trust anchors.
400
541
  */
401
- function installCertificateRelaxationHook(server) {
542
+ function installCertificateRelaxationHook(server, recordProvisional) {
402
543
  const adjustCertificateStatus = async (statusCode, certificate) => {
403
544
  // Only relax in NoConfiguration state
404
545
  if (server.engine.getServerState() !== ServerState.NoConfiguration) {
@@ -411,7 +552,7 @@ function installCertificateRelaxationHook(server) {
411
552
  doDebug &&
412
553
  warningLog(`[NoConfiguration] Relaxing certificate check:`, `${statusCode.toString()} → Good`, "(server is awaiting GDS provisioning)");
413
554
  // Auto-trust the leaf certificate; issuer CAs go to issuers/
414
- await autoTrustCertificateChain(server, certificate);
555
+ await autoTrustCertificateChain(server, certificate, recordProvisional);
415
556
  return StatusCodes.Good;
416
557
  };
417
558
  for (const endpoint of server.endpoints) {