node-opcua-server-configuration 2.186.4 → 2.186.6
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/clientTools/push_certificate_management_client.d.ts.map +1 -1
- package/dist/clientTools/push_certificate_management_client.js +4 -1
- package/dist/clientTools/push_certificate_management_client.js.map +1 -1
- package/dist/server/application_setup.d.ts +29 -0
- package/dist/server/application_setup.d.ts.map +1 -0
- package/dist/server/application_setup.js +157 -0
- package/dist/server/application_setup.js.map +1 -0
- package/dist/server/install_push_certificate_management.d.ts +46 -0
- package/dist/server/install_push_certificate_management.d.ts.map +1 -1
- package/dist/server/install_push_certificate_management.js +169 -10
- package/dist/server/install_push_certificate_management.js.map +1 -1
- package/dist/server/promote_trust_list.d.ts.map +1 -1
- package/dist/server/promote_trust_list.js +74 -29
- package/dist/server/promote_trust_list.js.map +1 -1
- package/dist/server/push_certificate_manager_helpers.d.ts.map +1 -1
- package/dist/server/push_certificate_manager_helpers.js +4 -0
- package/dist/server/push_certificate_manager_helpers.js.map +1 -1
- package/package.json +2 -2
- package/source/clientTools/push_certificate_management_client.ts +4 -1
- package/source/server/application_setup.ts +169 -0
- package/source/server/install_push_certificate_management.ts +232 -10
- package/source/server/promote_trust_list.ts +85 -35
- package/source/server/push_certificate_manager_helpers.ts +4 -0
|
@@ -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,
|
|
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,52 @@ 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 would no longer admit, by the same decision as at
|
|
88
|
+
* OpenSecureChannel: the certificate store, then the endpoint's
|
|
89
|
+
* `onAdjustCertificateStatus` hook (the NoConfiguration relaxation, plus
|
|
90
|
+
* whatever admission policy the application composed with it). In the setup
|
|
91
|
+
* state an untrusted certificate is therefore still admitted. Returns the
|
|
92
|
+
* number of channels closed.
|
|
93
|
+
*
|
|
94
|
+
* The check never trusts a certificate on its own.
|
|
95
|
+
*/
|
|
96
|
+
export declare function closeChannelsNoLongerTrusted(server: OPCUAServer): Promise<number>;
|
|
51
97
|
//# 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;
|
|
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;AAYD;;;;;;;;;;GAUG;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
|
|
240
|
-
// a
|
|
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,143 @@ 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
|
+
/** Certificates being re-evaluated: the relaxation hook admits them without trusting them. */
|
|
326
|
+
const reevaluating = new WeakSet();
|
|
327
|
+
/** How long after a TrustList change open channels are re-evaluated (see the "trustListUpdated" listener). */
|
|
328
|
+
const REEVALUATION_DELAY_MS = 250;
|
|
329
|
+
/**
|
|
330
|
+
* Close every SecureChannel, and the Sessions on it, whose client
|
|
331
|
+
* certificate the server would no longer admit, by the same decision as at
|
|
332
|
+
* OpenSecureChannel: the certificate store, then the endpoint's
|
|
333
|
+
* `onAdjustCertificateStatus` hook (the NoConfiguration relaxation, plus
|
|
334
|
+
* whatever admission policy the application composed with it). In the setup
|
|
335
|
+
* state an untrusted certificate is therefore still admitted. Returns the
|
|
336
|
+
* number of channels closed.
|
|
337
|
+
*
|
|
338
|
+
* The check never trusts a certificate on its own.
|
|
339
|
+
*/
|
|
340
|
+
export function closeChannelsNoLongerTrusted(server) {
|
|
341
|
+
const run = (reevaluations.get(server) ?? Promise.resolve()).then(() => _closeChannelsNoLongerTrusted(server));
|
|
342
|
+
reevaluations.set(server, run.catch(() => undefined));
|
|
343
|
+
return run;
|
|
344
|
+
}
|
|
345
|
+
async function _closeChannelsNoLongerTrusted(server) {
|
|
346
|
+
const cm = server.serverCertificateManager;
|
|
347
|
+
let closed = 0;
|
|
348
|
+
for (const endpoint of server.endpoints) {
|
|
349
|
+
for (const channel of endpoint.getChannels()) {
|
|
350
|
+
const certificate = channel.clientCertificate;
|
|
351
|
+
if (!certificate) {
|
|
352
|
+
continue;
|
|
353
|
+
}
|
|
354
|
+
// The same decision as when the channel was opened: the store,
|
|
355
|
+
// then the endpoint's adjustment hook, which the application may
|
|
356
|
+
// have composed with its own admission policy. Only the
|
|
357
|
+
// NoConfiguration relaxation's side effect (trusting the
|
|
358
|
+
// certificate) is suppressed: a re-evaluation never adds trust.
|
|
359
|
+
let statusCode = await cm.checkCertificate(certificate);
|
|
360
|
+
if (statusCode.isNotGood()) {
|
|
361
|
+
reevaluating.add(certificate);
|
|
362
|
+
try {
|
|
363
|
+
statusCode = await endpoint.adjustCertificateStatus(statusCode, certificate);
|
|
364
|
+
}
|
|
365
|
+
finally {
|
|
366
|
+
reevaluating.delete(certificate);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
if (statusCode.isGood()) {
|
|
370
|
+
continue;
|
|
371
|
+
}
|
|
372
|
+
warningLog(`[TrustList] closing SecureChannel ${channel.channelId}: client certificate is now ${statusCode.name}`);
|
|
373
|
+
for (const session of server.engine.getSessions()) {
|
|
374
|
+
if (session.channel === channel) {
|
|
375
|
+
server.engine.closeSession(session.authenticationToken, false, "Terminated");
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
channel.close();
|
|
379
|
+
closed++;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
return closed;
|
|
383
|
+
}
|
|
384
|
+
// ── Leaving the application setup state (§G.2) ─────────────────
|
|
385
|
+
function isSelfSigned(certificate) {
|
|
386
|
+
try {
|
|
387
|
+
return verifyCertificateSignature(certificate, certificate);
|
|
388
|
+
}
|
|
389
|
+
catch {
|
|
390
|
+
return false;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Move to Running once ApplyChanges has put a CA-issued certificate into
|
|
395
|
+
* service and the TrustList holds a certificate that was not trusted
|
|
396
|
+
* automatically. Leaving earlier would lock every client out, the
|
|
397
|
+
* CertificateManager included.
|
|
398
|
+
*/
|
|
399
|
+
async function leaveApplicationSetupIfConfigured(server, cm) {
|
|
400
|
+
if (server.engine.getServerState() !== ServerState.NoConfiguration) {
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
if (isSelfSigned(server.getCertificate())) {
|
|
404
|
+
doDebug && debugLog("[ApplicationSetup] still self-signed: staying in NoConfiguration");
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
if (!(await hasConfirmedTrust(cm))) {
|
|
408
|
+
warningLog("[ApplicationSetup] a CA-issued certificate is in service but no TrustList was written: staying in NoConfiguration");
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
warningLog("[ApplicationSetup] configured: leaving NoConfiguration");
|
|
412
|
+
server.engine.setServerState(ServerState.Running);
|
|
413
|
+
}
|
|
414
|
+
/** When the server leaves NoConfiguration, remove the certificates trusted automatically during the setup. */
|
|
415
|
+
function withdrawProvisionalTrustOnLeavingSetup(server, cm) {
|
|
416
|
+
const onStateChanged = (oldState, newState) => {
|
|
417
|
+
if (newState === ServerState.Shutdown) {
|
|
418
|
+
server.engine.removeListener("serverStateChanged", onStateChanged);
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
421
|
+
if (oldState !== ServerState.NoConfiguration || newState === ServerState.NoConfiguration) {
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
withdrawProvisionalTrust(cm)
|
|
425
|
+
.then(async (withdrawn) => {
|
|
426
|
+
if (withdrawn > 0) {
|
|
427
|
+
warningLog(`[ApplicationSetup] setup ended: ${withdrawn} certificate(s) trusted automatically are no longer trusted`);
|
|
428
|
+
}
|
|
429
|
+
await closeChannelsNoLongerTrusted(server);
|
|
430
|
+
})
|
|
431
|
+
.catch((err) => errorLog("[ApplicationSetup] cannot withdraw provisional trust:", err.message));
|
|
432
|
+
};
|
|
433
|
+
server.engine.on("serverStateChanged", onStateChanged);
|
|
291
434
|
}
|
|
292
435
|
// ── Certificate relaxation for NoConfiguration state ──────────
|
|
293
436
|
/**
|
|
@@ -313,7 +456,10 @@ export async function installPushCertificateManagementOnServer(server, options)
|
|
|
313
456
|
* relaxation hook returns the original status code unchanged and
|
|
314
457
|
* normal strict certificate validation applies. The accepted
|
|
315
458
|
* certificate is auto-trusted (see `autoTrustCertificateChain`)
|
|
316
|
-
* so that subsequent connections succeed under normal validation
|
|
459
|
+
* so that subsequent connections succeed under normal validation;
|
|
460
|
+
* with `applicationSetup.leaveWhenConfigured` that trust is
|
|
461
|
+
* withdrawn again when the setup ends, unless a TrustList write
|
|
462
|
+
* kept it.
|
|
317
463
|
*
|
|
318
464
|
* Errors that indicate an active security violation (revoked,
|
|
319
465
|
* expired, invalid signature, wrong usage) are **never** relaxed,
|
|
@@ -339,7 +485,7 @@ function isRelaxableCertificateError(statusCode) {
|
|
|
339
485
|
* connection from unintentionally granting trust to every
|
|
340
486
|
* certificate signed by the same CA.
|
|
341
487
|
*/
|
|
342
|
-
async function autoTrustCertificateChain(server, certificate) {
|
|
488
|
+
async function autoTrustCertificateChain(server, certificate, recordProvisional) {
|
|
343
489
|
let chain;
|
|
344
490
|
try {
|
|
345
491
|
chain = split_der(certificate);
|
|
@@ -362,8 +508,12 @@ async function autoTrustCertificateChain(server, certificate) {
|
|
|
362
508
|
continue;
|
|
363
509
|
}
|
|
364
510
|
if (i === 0) {
|
|
365
|
-
// Leaf certificate → trust explicitly
|
|
511
|
+
// Leaf certificate → trust explicitly, and remember that it was
|
|
512
|
+
// trusted only because the server is in the setup state.
|
|
366
513
|
try {
|
|
514
|
+
if (recordProvisional && (await cm.isCertificateTrusted(cert)) !== "Good") {
|
|
515
|
+
await recordProvisionalTrust(cm, "trusted", makeSHA1Thumbprint(cert).toString("hex"));
|
|
516
|
+
}
|
|
367
517
|
await cm.trustCertificate(cert);
|
|
368
518
|
}
|
|
369
519
|
catch (err) {
|
|
@@ -378,6 +528,12 @@ async function autoTrustCertificateChain(server, certificate) {
|
|
|
378
528
|
// Issuer CA certificate → add to issuers/ (chain-building
|
|
379
529
|
// only, does NOT establish a trust anchor)
|
|
380
530
|
try {
|
|
531
|
+
if (recordProvisional) {
|
|
532
|
+
const thumbprint = makeSHA1Thumbprint(cert).toString("hex");
|
|
533
|
+
if (!(await leafThumbprintsIn(cm.issuersCertFolder)).includes(thumbprint)) {
|
|
534
|
+
await recordProvisionalTrust(cm, "issuers", thumbprint);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
381
537
|
await cm.addIssuer(cert);
|
|
382
538
|
}
|
|
383
539
|
catch (err) {
|
|
@@ -398,7 +554,7 @@ async function autoTrustCertificateChain(server, certificate) {
|
|
|
398
554
|
* validation. Issuer CAs are placed in `issuers/` for chain
|
|
399
555
|
* building but do not become trust anchors.
|
|
400
556
|
*/
|
|
401
|
-
function installCertificateRelaxationHook(server) {
|
|
557
|
+
function installCertificateRelaxationHook(server, recordProvisional) {
|
|
402
558
|
const adjustCertificateStatus = async (statusCode, certificate) => {
|
|
403
559
|
// Only relax in NoConfiguration state
|
|
404
560
|
if (server.engine.getServerState() !== ServerState.NoConfiguration) {
|
|
@@ -410,8 +566,11 @@ function installCertificateRelaxationHook(server) {
|
|
|
410
566
|
}
|
|
411
567
|
doDebug &&
|
|
412
568
|
warningLog(`[NoConfiguration] Relaxing certificate check:`, `${statusCode.toString()} → Good`, "(server is awaiting GDS provisioning)");
|
|
413
|
-
// Auto-trust the leaf certificate; issuer CAs go to issuers/
|
|
414
|
-
|
|
569
|
+
// Auto-trust the leaf certificate; issuer CAs go to issuers/ (not
|
|
570
|
+
// when an open channel is being re-evaluated: that adds no trust).
|
|
571
|
+
if (!reevaluating.has(certificate)) {
|
|
572
|
+
await autoTrustCertificateChain(server, certificate, recordProvisional);
|
|
573
|
+
}
|
|
415
574
|
return StatusCodes.Good;
|
|
416
575
|
};
|
|
417
576
|
for (const endpoint of server.endpoints) {
|