Zertifikatsaustausch
Für eine Absicherung der Kommunikationsverbindung auf Transportebene über einen sicheren Endpunkt ist die Herstellung einer gegenseitigen Vertrauensstellung zwischen Client und Server notwendig. Standardmäßig generiert hierzu das TwinCAT OPC UA Gateway beim ersten Start ein maschinenspezifisches, selbstsigniertes Schlüsselpaar bestehend aus einem Public- und einem Private-Key. Sie können jedoch zur Integration in Ihre IT-Infrastruktur auch eine beliebige Zertifizierungsstelle bzw. -technologie verwenden, z.B. Active Directory oder OpenSSL. Für die einfache Verwaltung, sowie den sicheren Zugriff auf Zertifikate, ist die Einrichtung eines Global Discovery Server sinnvoll.
Zur Einrichtung einer Vertrauensstellung zwischen einem OPC UA Client und dem TwinCAT OPC UA Gateway, benötigen Sie den öffentlichen Schlüssel des Client-Zertifikats. Das Gateway muss diesem als Server entsprechend vertrauen. Das Gateway verwaltet die Vertrauenseinstellungen für Client-Zertifikate in einem Unterverzeichnis des Applikationsverzeichnisses.
Das folgende Schaubild verdeutlicht einmal den Zusammenhang von Client- und Server-Zertifikat beim Aufbau einer sicheren Kommunikationsverbindung am Beispiel von TwinCAT OPC UA Client und TwinCAT OPC UA Server. Im Falle von letzterem lässt sich dies jedoch 1:1 auch auf das Gateway übertragen.

Beim CreateSession Request übermittelt der Client seinen Public Key. Der Server hat daraufhin die Möglichkeit, die Vertrauensstellung zu überprüfen. Vertraut der Server dem Client, so übermittelt er in seiner Response seinen eigenen Public Key. Der Client hat somit ebenfalls die Möglichkeit die Vertrauensstellung mit dem Server zu überprüfen.
Ist die beiderseitige Vertrauensstellung gewährleistet, so wird die Kommunikationsverbindung initiiert. Für die Verschlüsselung eines Requests vom Client an den Server wird dann der Public Key des Servers verwendet. Die Response vom Server an den Client wird dann mit dem Public Key des Clients verschlüsselt. Beide Kommunikationsteilnehmer haben dann die Möglichkeit, die jeweils empfangene Nachricht mit ihrem Private-Key zu entschlüsseln.
Das Signieren von Nachrichten erfolgt jeweils umgekehrt: die Signatur einer Nachricht erfolgt jeweils mit dem Private-Key des Absenders. Da der Empfänger den Public-Key des Absenders erkennt, so kann damit die Signatur überprüft werden.
Vertrauensstellung per Dateisystem konfigurieren
Durch das Verschieben von Client-Zertifikaten zwischen den trusted/rejected-Verzeichnissen können die Vertrauenseinstellungen entsprechend angepasst werden. Der öffentliche Schlüssel eines Client-Zertifikats wird beim ersten Verbindungsversuch des Clients mit einem sicheren Endpunkt automatisch im Verzeichnis für nicht-vertrauenswürdige Zertifikate abgelegt. Durch das anschließende Verschieben des öffentlichen Schlüssels in das Verzeichnis für vertrauenswürdige Zertifikate wird dem Client beim nächsten Verbindungsversuch vertraut und er kann sich verbinden.
![]() | Accept all certificates Ist diese Option in der Konfiguration der Endpunkte des Gateways aktiviert, so vertraut das Gateway automatisch allen Clientzertifikaten. Diese werden in diesem Fall nicht in einem der oben genannten Verzeichnisse aufgelistet. |
Vertrauensstellung per Konfigurator konfigurieren
Sie können die Vertrauenseinstellungen auch über den Konfigurator durchführen. Der Konfigurator beinhaltet entsprechend eine grafische Benutzeroberfläche zur Konfiguration der Vertrauenseinstellungen. Über das Kontextmenü können Sie ein Zertifikat trusten oder rejecten.
