node-opcua-server-configuration 2.186.4 → 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.
- 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 +44 -0
- package/dist/server/install_push_certificate_management.d.ts.map +1 -1
- package/dist/server/install_push_certificate_management.js +150 -9
- 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 +213 -9
- 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,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;
|
|
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
|
|
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,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) {
|