Verschlüsselte Kommunikation im WTS (https)
Die Kommunikation zwischen Clients und Server wird im WTS 8 mit Hilfe der standardisierten Microsoft-Technologie Windows Communication Foundation WCF implementiert. WCF bietet mehrere Möglichkeiten, die Kommunikation abzusichern. Die Variante, die im WTS standardmäßig verwendet wird, bietet die Sicherstellung von Vertraulichkeit, Integrität und Authentifizierung auf dem ganzen Weg (end-to-end) zwischen den Clients und dem Server („Message“-Security). Diese Variante ist auf der Applikationsebene implementiert und verwendet AES-256 zur Verschlüsselung (https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/wcf/message-of-wshttpbinding ).
Zusätzliche Informationen zur „WCF Security“ finden Sie hier: https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/security-overview
Die anderen APIs werden standardmäßig mit dem HTTPS-Protokoll gehostet, wobei ein selbstsigniertes, vertrauenswürdiges SSL-Zertifikat verwendet wird.
Standardmäßig verwendet das WTS immer eine verschlüsselte Kommunikation. Die notwendigen Zertifikate werden automatisch generiert.
Verwendung eines eigenen HTTPS-Zertifikats
Um ein eigenes HTTPS-Zertifikat zu verwenden, kann die Installation via Command-Line durchgeführt werden: Silent-Installation per Command-Line. Eine nachträgliche Konfiguration ist manuell möglich, jedoch nicht empfohlen.
Derzeit können nur gültige RSA-Zertifikate (2048 Bit) verwendet werden.
Installation des Zertifikats über die Command-Line Installation
Ab Version 8.26 unterstützt das Installationsprogramm auch die Installation eigener Zertifikate, die über Kommandozeilenoptionen übergeben werden. Dafür muss der Installationsbefehl um folgende Parameter ergänzt werden:
EXISTING_CERTIFICATE_SUBJECT: Common Name (CN) des Zertifikatsubjekts eines unter
LocalComputer/Personal windows certificate store
gespeicherten Zertifikats.EXISTING_CERTIFICATE_THUMBPRINT: Thumbprint des Zertifikatsubjekts eines unter
LocalComputer/Personal windows certificate store
gespeicherten Zertifikats.
In beiden Fällen (sofern das Installationsprogramm keine ungültigen Zertifikate findet) muss das Zertifikat einen privaten Schlüssel mit einer Länge von mindestens 2048 Bit enthalten.
Das Installationsprogramm konfiguriert das Zertifikat und koppelt es an die benötigten Ports.
Für Details zur Installation per Command-Line siehe: Silent-Installation per Command-Line
Automatische Zertifikatskonfiguration mit VTSCommand.exe
Seit der WTS-Version 8.27 können Sie das SSL/TLS/Verschlüsselung/Signierung X509-Zertifikat für alle WTS Komponenten mit dem binären Befehlszeilentool VTSCommand.exe automatisch neu konfigurieren. Das Befehlszeilentool findet sich im Unterordner AdminClient des WTS Installationsordner (Default: %programfiles%\SCHUHFRIED GmbH\Wiener Testsystem 8 Client\AdminClient
).
Das binäre Befehlszeilentool muss in einer Shell mit erweiterten Rechten bzw. als Administrator ausgeführt werden. Das Tool kann das X509-Zertifkat für das gesamte WTS auf zwei Wegen konfigurieren:
Verwendung eines vorhandenen Zertifikats im Windows-Zertifikatspeicher des lokalen Computers. Führen Sie dazu den folgenden Befehl in der Powershell aus:
.\VTSCommand.exe -c -k [X509-Zertifikat-Suche-Art] -v [Zertifikat-Such-Begriff]
Dabei ist:[X509-Zertifikat-Suche-Art]
: Spezifiziert die Art der Zertifikatssuche. Die folgenden Werte sind zulässig:FindByThumbprint, FindBySubjectName, FindBySubjectDistinguishedName, FindByIssuerName, FindByIssuerDistinguishedName, FindBySerialNumber, FindByTimeValid, FindByTimeNotYetValid, FindByTimeExpired, FindByTemplateName, FindByApplicationPolicy, FindByCertificatePolicy, FindByExtension, FindByKeyUsage, FindBySubjectKeyIdentifier
[Zertifikat-Suche-Begriff]
spezifiziert, den Inhalt der Suche. Es hängt davon ab, welchen [Zertifikat-Such-Begriff
] Sie verwendet haben, z. B. fürFindByThumbprint
ist[Zertifikat-Suche-Begriff]
der Thumbprint-Wert Ihres Zertifikats, z.B. " 993e3fcb87b355fb2a4d954abacbb33ba7f59865 ". BeiFindBySubjectName
ist[Zertifikat-Suche-Begriff]
der Common Name (CN)-Teil des Zertifikats Subject, z. B. SchuhfriedSelfSignedCertificate.Beispiele:
.\VTSCommand.exe -c -k FindByThumbprint -v 993e3fcb87b355fb2a4d954abacbb33ba7f59865
.\VTSCommand.exe -c -k FindBySubjectName -v SchuhfriedSelfSignedCertificate
Verwendung einer pfx-Datei mit dem exportierten Zertifikat und seinem privaten Schlüssel sowie dem Passwort zum Öffnen der Datei (das Zertifikat aus der pfx-Datei wird im lokalen Windows-Zertifikatspeicher auf Ihrem Computer installiert). Der Befehl lautet:
.\VTSCommand.exe -c -f [Pfx-Dateipfad] -q [Pfx-Dateipasswort]
Dabei ist:[Pfx-Dateipfad]
ist der vollständige Pfad zu Ihrer pfx-Datei einschließlich des Dateinamens, z. B.c:\users\admin\desktop\mycert.pfx
.[Pfx-Dateipasswort]
ist das zum Lesen der pfx-Datei erforderliche PasswortBeispiel:
.\VTSCommand.exe -c -f c:\users\admin\desktop\mycert.pfx -q myCertPassword.1234
Hinweise
Sie können auch einfach die Datei .\VTSCommand.exe -c ausführen, um alle Parameter interaktiv einzugeben.
Sie können den Parameter -n verwenden, um Ja/Nein-Fragen zu entfernen. In diesem Fall wird alles automatisch bestätigt.
Das Tool aktualisiert die neuen Zertifikatsinformationen in allen erforderlichen Konfigurationsdateien des WTS.
Das Tool sichert alle Konfigurationsdateien im Ordner C:\ProgramData\Schuhfried\Backup, bevor es diese ändert.
Während der Ausführung des Tools werden die WTS Dienste wie z. B. der WTS Service oder das VIS (Universal Plugin) neu gestartet.
Manuelle Installation
Neben dem WTS Service beinhaltet das WTS weitere APIs, die mittels HTTPS-Protokoll kommunizieren. Standardmäßig verschlüsseln der WTS Service und die APIs ihre Kommunikation mit einem vertrauenswürdigen, selbstsignierten SSL-Zertifikat. Es besteht jedoch die Möglichkeit, ein eigenes, für die gehostete Domäne ausgestelltes SSL-Zertifikat zu verwenden. Dafür sind folgende Schritte notwendig:
Vergewissern Sie sich, dass Ihr Zertifikat unter Eigene Zertifikate --> Zertifikate (Lokaler Computer) abgelegt ist.
Ersetzen Sie den Standardwert (
SchuhfriedSelfSignedCertificate
) mit dem Namen Ihres eigenen Zertifikats.Dies müssen Sie an jeder Stelle der Konfigurationsdatei tun, wo die folgenden Schlüssel-Wert-Paare verwendet werden:
“CertificateSearchValue”: “FindBySubjectName”
und“CertificateSearchKind”= “your-certificate-CN”
.
Ersetzen Sie den Standardwert mit dem Namen Ihres eigenen Zertifikats in den folgenden Konfigurationsdateien:
Installationspfad\Service\Service.Wcf\appsettings.json
Installationspfad\Service\Service.Wcf\VTS.Service.Wcf.dll.config
Installationspfad\Api\appsettings.json
Installationspfad\Portal\appsettings.json
Installationspfad\Testplayer.web\appsettings.json
Installationspfad\\Identity\appsettings.json
Der Installationspfad ist standardmäßig:
%programfiles%\SCHUHFRIED GmbH\Wiener Testsystem 8
Beispiel:
Wenn sich durch die Änderung des Antragsstellers des Zertifikats (subject) auch die URL geändert hat, unter der das WTS den Dienst und die APIs bereitstellt, müssen in der WTS Datenbank die Werte in der Tabelle Client anhand der korrekten URL aktualisiert werden. Das mitgelieferte SQL-Skript
update_identityserverconfiguration.sql
kann für diese Aufgabe verwendet werden, nachdem die korrekte URL im Script hinzugefügt wurde. Das Skript ist im Ordner Scripts\Help in den Installationsdateien zu finden.Starten Sie den Dienst WTS Service neu.
Konfiguration des VIS Universal Plugins zur Verwendung einer verschlüsselten Verbindung per HTTPS
Die folgenden Schritte beschreiben, wie Sie das Universal-Plugin über HTTPS konfigurieren, indem Sie das beim Setup zur Verfügung gestellte selbstsignierte Zertifikat oder Ihr eigenes SSL-Zertifikat verwenden.
Die folgenden Schritte müssen durchgeführt werden:
(Optional, wenn Sie Ihr eigenes Zertifikat verwenden) Vergewissern Sie sich, dass Ihr Zertifikat unter Meine Zertifikate → Zertifikate (lokaler Computer) verfügbar ist.
(Optional, wenn Sie Ihr eigenes Zertifikat verwenden) Geben Sie den Namen (Subjekt) des Zertifikats in der Datei appsettings.json im Ordner IntegrationService im Installationsordner (per default:
%programfiles%\SCHUHFRIED GmbH\Wiener Testsystem 8\IntegrationService\appsettings.json
) an.Die Änderung muss im Abschnitt UniversalPlugin geschehen, indem die Werte für CertificateSearchKind und CertificateSearchValue ergänzt werden:
Starten Sie den Dienst WTS Service neu.