aboutsummaryrefslogtreecommitdiffstats
path: root/readme.md
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-02-17 23:11:29 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-02-17 23:27:11 +0100
commitb2002d96f495dcb3bd2f5a738ec1615034ca876f (patch)
treeaee665fb83cedebaa8ad093d0a2896a1a83881eb /readme.md
parent229a536a87f6b2075000e659219e0567b45345c5 (diff)
downloadBobinkCOpcUa-b2002d96f495dcb3bd2f5a738ec1615034ca876f.tar.gz
BobinkCOpcUa-b2002d96f495dcb3bd2f5a738ec1615034ca876f.zip
Make LDS security config optional, add nosec_anon test
ServerLDS and ServerRegister can now run without encryption when certificate, privateKey, and trustStore are all omitted from the server config file. When any of the three is present, all three are still required. The unsecured server uses UA_ServerConfig_setMinimal with SecurityPolicy#None only. Add nosec_anon integration test covering the LDS unsecured path. Update readme: use symlinks instead of copies for trust stores, note that ServerLDS and ServerRegister support running without certs.
Diffstat (limited to 'readme.md')
-rw-r--r--readme.md22
1 files changed, 13 insertions, 9 deletions
diff --git a/readme.md b/readme.md
index 4156e51..bb99256 100644
--- a/readme.md
+++ b/readme.md
@@ -25,8 +25,11 @@ cd opcua_c
### Generate certificates
-The programs use TLS certificates for mutual authentication. Four identities
-are needed — run these from the project root:
+The programs use TLS certificates for mutual authentication. ServerLDS and
+ServerRegister can also run without certificates (SecurityPolicy#None only) by
+omitting the `certificate`, `privateKey`, and `trustStore` keys from their
+config files. For encrypted operation, four identities are needed — run these
+from the project root:
```sh
tools/generate_certificate.sh certs ServerLDS
@@ -37,22 +40,22 @@ tools/generate_certificate.sh certs ClientFindServers
### Populate the trust stores
-Each program trusts a specific set of peers. Copy the certificates into the
-trust store directories so they can find each other:
+Each program trusts a specific set of peers. Create symlinks to the
+certificates in the trust store directories so they can find each other:
```sh
mkdir -p certs/trust/{server_lds,server_register,server_register_client,client}
-cp certs/ServerRegisterClient_cert.der certs/ClientFindServers_cert.der \
+ln -s ../../ServerRegisterClient_cert.der ../../ClientFindServers_cert.der \
certs/trust/server_lds/
-cp certs/ServerLDS_cert.der certs/ClientFindServers_cert.der \
+ln -s ../../ServerLDS_cert.der ../../ClientFindServers_cert.der \
certs/trust/server_register/
-cp certs/ServerLDS_cert.der \
+ln -s ../../ServerLDS_cert.der \
certs/trust/server_register_client/
-cp certs/ServerLDS_cert.der certs/ServerRegister_cert.der \
+ln -s ../../ServerLDS_cert.der ../../ServerRegister_cert.der \
certs/trust/client/
```
@@ -93,10 +96,11 @@ All three programs accept an optional log level as the last argument
## Tests
-Integration tests exercise four combinations of security and authentication:
+Integration tests exercise five combinations of security and authentication:
| Test | Security | Auth |
|------|----------|------|
+| `nosec_anon` | LDS unsecured / None | anonymous |
| `none_anon` | None | anonymous |
| `none_user` | None | user/password |
| `basic256sha256_anon` | SignAndEncrypt / Basic256Sha256 | anonymous |