Auswählen des Servers¶
Wenn du mit mehreren Umgebungen arbeitest – zum Beispiel über Domänengrenzen hinweg oder zwischen Test- und Produktivsystemen wechselst –, möchtest du beim Start des Clients möglicherweise gezielt einen bestimmten Server ansprechen. Die gewünschte Serververbindung kannst du direkt über die Kommandozeile steuern.
Direkte Angabe von Servername und Port¶
Mit den Optionen --server-name (kurz -s) und --server-port (kurz -u) gibst du den Zielserver und den zugehörigen Port direkt beim Start an. Diese Angaben überschreiben die in der Konfigurationsdatei hinterlegten Werte – allerdings nur für diesen einen Aufruf.
Ermöglicht einen schnellen Wechsel zwischen Test- und Produktivsystemen – ohne Konfigurationsänderung. |
|
Es wird immer derselbe Schlüssel und dasselbe Secret verwendet. Diese müssen daher auf allen angesprochenen Servern identisch konfiguriert sein. |
So funktioniert’s¶
Im folgenden Beispiel stellt der Client eine Verbindung zum Host example01 auf Port 5009 her – unabhängig von den Werten in der Konfigurationsdatei:
PS AssistantClient> .\AssistantClient.exe -s=example01 -u=5009 -a=KillUserSession -p=localhost -p=Joe
Verwenden verschiedener Konfigurationsdateien¶
Wenn du mit mehreren Umgebungen arbeitest, kannst du durch die Verwendung unterschiedlicher Konfigurationsdateien gezielt steuern, welche Einstellungen – einschließlich Secrets und SSL-Zertifikaten – bei einem Aufruf verwendet werden. Dazu nutzt du die Option --config-file und gibst den Pfad zur gewünschten Datei an.
Ermöglicht vollständige Trennung von Test-, Staging- und Produktivumgebung – inklusive Secrets und Zertifikaten. |
|
Der initiale Aufbau einer sauberen Konfigurationsstruktur erfordert etwas zusätzlichen Aufwand. |
So funktioniert’s¶
Im folgenden Beispiel zeige ich dir, wie du eine klare Trennung zwischen Produktiv- und Testumgebung realisierst – inklusive jeweils eigener Secrets und SSL-Zertifikate.
Erstelle zunächst eine saubere Verzeichnisstruktur. Wichtig: Im Anwendungsverzeichnis selbst darf sich keine configuration.xml befinden – sonst wird diese beim Start immer bevorzugt geladen.
c:\
└── assistant
├── client
│ └── AssistantClient.exe
└── conf
├── prod
│ ├── configuration.xml
│ ├── ca.crt
│ ├── client.crt
│ └── client.key
└── test
├── configuration.xml
├── ca.crt
├── client.crt
└── client.key
Rufe den Client anschließend gezielt mit der gewünschten Konfiguration auf:
PS AssistantClient> .\AssistantClient.exe --config-file=c:\assistant\conf\prod\configuration.xml --action=KillUserSession -p=localhost -p=Joe
# oder
PS AssistantClient> .\AssistantClient.exe --config-file=c:\assistant\conf\test\configuration.xml --action=KillUserSession -p=localhost -p=Joe
Geteilte SSL-Konfiguration¶
In vielen Fällen bietet es sich an, gemeinsam genutzte Konfigurationsteile – etwa SSL-Zertifikate – in einer separaten Datei auszulagern. So vermeidest du doppelte Konfiguration und behältst den Überblick.
Die Struktur könnte z. B. so aussehen:
c:\
└── assistant
├── client
│ └── AssistantClient.exe
└── conf
├── ssl
│ ├── ssl.conf_b.xml
│ ├── ca.crt
│ ├── client.crt
│ └── client.key
├── prod
│ └── configuration.xml
└── test
└── configuration.xml
Die Datei ssl.conf_b.xml enthält dann die SSL-Konfiguration:
ssl.conf_b.xml¶ 1<?xml version="1.0" encoding="UTF-8" ?>
2<Configuration version="1" xmlns="http://educateit.ch/software/BlueStone/Configuration/1">
3 <Module name="SSL">
4 <List name="profiles">
5 <ListEntry>
6 <Value name="identifier">client</Value>
7 <Value name="key">●thisDirectory●/client.key</Value>
8 <Value name="keyAlgorithm">RSA</Value>
9 <Value name="caCertificates">●thisDirectory●/ca.crt</Value>
10 <Value name="localCertificateChain">●thisDirectory●/client.crt</Value>
11 <Value name="peerVerificationEnabled">Yes</Value>
12 <Value name="ignoreHostNameMismatch">Yes</Value>
13 </ListEntry>
14 </List>
15 </Module>
16</Configuration>
Und wird in deiner eigentlichen configuration.xml wie folgt eingebunden:
configuration.xml¶ 1<?xml version="1.0" encoding="UTF-8" ?>
2<Configuration version="1" xmlns="http://educateit.ch/software/BlueStone/Configuration/1">
3
4 <Module name="Application">
5 ...
6 </Module>
7
8 <Module name="Log">
9 ...
10 </Module>
11
12 <IncludeFile>../ssl/ssl.conf_b.xml</IncludeFile>
13
14</Configuration>