Skip to main content

How To: Zertifikate für IDE und SPS handhaben

Die Zertifikate für die Verschlüsselung im CODESYS Development System oder für die Kommunikation mit der SPS können selbstsigniert oder CA-signiert sein. Welche Zertifizierungsstufe eingesetzt wird, hängt vom Sicherheitsanspruch ab. Sie können Zertifikate mit speziellen Tools oder in der CODESYS-Umgebung erstellen.

CA signierte Zertifikate

CA-signierte Zertifikate müssen durch einen vertrauenswürdigen externen Zertifizierungsdienstleister (Certification Authority, CA) oder durch eine CA, die in der Anlage des Betreibers untergebracht ist, erstellt werden. Um ein CA-signiertes Zertifikat zu erhalten, können Sie ein selbst erstelltes Zertifikat über einen Certificate Signing Request (CSR) an eine CA senden und hinterher wieder auf Ihrem Computer oder auf der SPS installieren.

Extensions bei CAs

Die CA verwendet die Daten aus dem Certificate Signing Request (CSR), um daraus das X.509-Zertifikat für die SPS zu erstellen. Beim Signieren des CSR ist die Übernahme folgender x509v3-Extensions aus dem CSR zwingend notwendig:

Key Usage, Extended Key Usage, Subject Alternative Name, jeweils mit dem Flag Critical

Selbstsignierte Zertifikate

Selbstsignierte Zertifikate können Sie selbst mit dem eigenen privaten Schlüssel signiert erstellen. Sie sind nicht durch eine CA signiert. In der CODESYS-Umgebung werden Sie durch Dialoge und Verschlüsselungsassistenten beim Erstellen selbstsignierter Zertifikate unterstützt.

Tipp

Ein selbstsigniertes Zertifikat ist für Testzwecke nützlich. Es kann auch als Übergangslösung dienen, bis ein von einer CA signiertes Zertifikat bereitsteht.

Zertifikate im Windows Certificate Store speichern

Zertifikatsverwaltung auf dem Entwicklungsrechner unter Windows

Auf Ihrem Computer müssen gültige Zertifikate für die Verschlüsselung eines CODESYS-Projekts und für den Austausch zwischen der SPS und dem CODESYS Development System im lokalen Windows Certificate Store (certmgr) liegen.

Tipp

Um eine Zertifikatsdatei aus dem lokalen Dateisystem in den Windows Certificate Store zu installieren, doppelklicken Sie auf die Datei im Dateiverzeichnis. Sie erhalten dann den passenden Importassistenten.

Siehe hierzu: Zertifikate der SPS

Der Security-Screen bietet eine Oberfläche zur Zertifikatshandhabung für das Projekt wie auch für die Zertifikate, die für die Kommunikation mit der SPS nötig sind. Im Fall der Kommunikation zwischen CODESYS und SPS bietet der Security-Screen eine Alternative zu den entsprechenden Kommandos der SPS-Shell des Geräteeditors.

Die Zertifikatsverwaltung auf der SPS liegt in der Hand des Anlagenbetreibers.

Was mit Zertifikaten verschlüsselt oder signiert werden kann

Tabelle 1. Mit Hinweisen zu den dazu unterstützenden CODESYS-Komponenten

Package

Im Add-on CODESYS Package Designer

Projekt

Über den Dialog der Projekteinstellungen

Einzelne Programmiereinheiten im Projekt

Mit Hilfe der Funktionen der Bibliothek CmpX509Cert.library

Bibliothek

Beim Speichern als übersetzte Bibliotheksdatei

Applikationscode, Bootapplikation, Quellcode downloaden, Online-Change

Eine unmittelbare Unterstützung für das Erstellen eines Zertifikats erhalten Sie in diesem Fall durch einen Verschlüsselungsassistenten im Dialog Eigenschaften der Applikation.

Kommunikation zwischen Programmiersystem und SPS

Eine unmittelbare Unterstützung für das Erstellen eines Zertifikats für verschlüsselte Kommunikation mit der Steuerung wird Ihnen direkt beim ersten Verbinden mit einer geschützten Steuerung angeboten. Dieses Zertifikat ist zunächst nur temporär gültig.

Kommunikation zwischen Automation Server Connector über den Edge Gateway mit dem Automation Server

Für das Einrichten der zertifikatsverschlüsselten Kommunikation erhalten Sie ab V1.35.0.0 des CODESYS Automation Server Unterstützung durch den Dialog Quick Setup.

Kommunikation zwischen WebVisu und Webbrowser

Über den Security-Screen, über die Registerkarte Geräte oder über die Komponente CmpOpenSSL im Laufzeitsystem

Damit ein Zertifikat vom Browser als sicher eingestuft wird, muss es von einer vertrauenswürdigen Zertifizierungsstelle (CA) signiert sein.

Kommunikation zwischen Projekt und Remote TargetVisu

Sie erhalten unmittelbare Unterstützung beim ersten Starten, wenn das Laufzeitsystem die verschlüsselte Kommunikation fordert.

Kommunikation über OPC UA-Server

Über den Security-Screen

Beim Signieren des CSR ist die Übernahme der folgenden "x509v3-Extensions" aus dem CSR zwingend notwendig:

Key Usage,

Extended Key Usage

Subject Alternative Name

jeweils mit dem Flag Critical

Visualisierungselement HTML5

Im Dialog Visualisierungselemente-Repository



Zertifikate der SPS

Vertraulichkeit

Bei der Handhabung von SPS-Zertifikaten muss die Rolle des Anwenders differenziert werden. Der Anlagenbetreiber muss sicherstellen, dass nur ein Anwender in der Rolle des Systemadministrators im SPS-Zertifikatsspeicher konfigurieren und Zertifikate erneuern kann.

Nur der Systemadministrator darf Zertifikate erzeugen, erneuern oder die Zertifikatssperrliste ändern. Der Zugriff auf den SPS‑Zertifikatsspeicher ist sicherheitskritisch.

SPS-Zertifikate im Windows Certificate Store speichern

Die Konfiguration des SPS-Zertifikatsspeichers legt fest, für welche Anwendungsfälle die SPS gültige Zertifikate erwartet. Installieren Sie die dafür benötigten Zertifikate auf Ihrem Computer im lokalen Windows Certificate Store.

CODESYS erleichtert das Erstellen und Verwalten der nötigen SPS-Zertifikate. Nutzen Sie dafür die Verschlüsselungsassistenten und die Ansicht Security-Screen, Registerkarte Geräte. Alternativ können Sie dazu die Kommandos der Registerkarte SPS-Shell des Geräteeditors nutzen. An beiden Stellen sehen Sie den Zertifikatsspeicher der aktuell verbundenen SPS und können Zertifikate erstellen lassen. Beide Stellen bieten zudem eine Übersicht aller Anwendungsfälle auf der SPS, für die ein Zertifikat nötig ist. Sie zeigen, ob bereits ein Zertifikat dafür vorliegt. Beispiele für Anwendungsfälle sind Verschlüsselte Kommunikation und OPC UA-Server.

Bei jedem Anwendungsfall prüft CODESYS zunächst, ob die passenden Zertifikate im lokalen Windows Certificate Store als vertrauenswürdige Zertifikate vorliegen.

Selbstsignierte Zertifikate

Wenn Sie keine Zertifizierungsstelle (CA) haben, können Sie Zertifikate selbst signieren. Wenn für einen Anwendungsfall auf der SPS, beispielsweise für den OPC-UA-Server, kein gültiges Zertifikat installiert ist, können Sie ein selbstsigniertes Zertifikat erzeugen. Verwenden Sie dazu entweder den Security-Screen oder die SPS-Shell in CODESYS. Das selbstsignierte Zertifikat wird in der Kategorie Anwendungsfälle angelegt.

Ein häufiger Anwendungsfall für Server-Client-Anwendungen ist, auf der SPS, die als Server fungiert, eine Zertifikatsanforderung (Certificate Signing Request, CSR) oder ein selbstsigniertes Zertifikat zu erstellen. Das Zertifikat wird anschließend von der SPS, die als Server fungiert, auf den PC mit CODESYShochgeladen und von dort auf die SPS heruntergeladen, die als Client fungiert. Damit der Client dem Server vertraut, muss das Zertifikat in die Vertrauensstufe Vertrauenswürdig verschoben werden. Beachten Sie, dass Zertifikate auch in andere Vertrauensstufen verschoben werden können.

Zertifikate sind beispielsweise aufgrund einer Sperrliste als nicht vertrauenswürdig eingestuft, oder sie sind zur expliziten Prüfung in Quarantäne, weil die SPS selbst nicht direkt prüfen konnte. Nach Prüfung können Sie Zertifikate in die Kategorie Vertrauenswürdige Zertifikate verschieben. Sie können Zertifikate auch wieder von der SPS löschen.

Siehe hierzu: How To: Selbstsignierte Zertifikate erzeugen

CA-signierte Zertifikate

Um einen höheren Sicherheitslevel zu erreichen, sollten Sie ein selbstsigniertes Zertifikat durch ein CA-signiertes Zertifikat ersetzen. Wenn Sie noch kein CA-signiertes Zertifikat haben, können Sie es bei einer CA-Stelle anfordern. Exportieren Sie dazu aus dem Security-Screen oder über die SPS-Shell die betreffende Zertifikatsanforderung (Certificate Signing Request, CSR) ins lokale Dateisystem. Importieren Sie nach Rücksendung des CA-signierten Zertifikats dieses wieder in den SPS-Zertifkatsspeicher und den lokalen Windows Certificate Store.

Das direkte Erzeugen eines CSR ist über die SPS-Shell und ab CODESYS Security Agent V1.4.0.0 auch aus dem Security-Screen (Registerkarte Geräte) möglich.

Anmerkung

Beim Signieren übernimmt die Zertifizierungsstelle alle Erweiterungen aus der CSR unverändert in das Zertifikat. Die Felder Key Usage, Extended Key Usage und Subject Alternative Name müssen zusammen mit ihrem Critical-Flag beibehalten werden. Die Zertifizierungsstelle darf keines dieser Felder entfernen.

Zertifikate automatisch durchsuchen

Mehrere Zertifikate für denselben Anwendungsfall

Wenn für einen Anwendungsfall auf der SPS mehrere Zertifikate vorliegen, bestimmt das System mit folgenden nacheinander durchgeführten Auswahlschritten, welches Zertifikat verwendet wird:

  1. Verwenden des Zertifikats, das vom Anwender direkt erstellt wurde. (Wird derzeit noch nicht berücksichtigt!)

  2. Filtern der bereits vorhandenen Zertifikate nach:

    • Subjekt (Verwender des Zertifikats)

    • Schlüsselverwendung

    • erweiterter Schlüsselverwendung

    • gültigem Zeitstempel

  3. Aufteilen der bisher gefundenen gültigen Zertifikate in „signiert“ und „selbstsigniert“

  4. Filtern der signierten Zertifikate und danach der selbstsignierten Zertifikate nach folgenden Kriterien:

    • längste Gültigkeitsdauer

    • stärkster Schlüssel

Zertifikate erneuern

Der Anlagenbetreiber muss dafür sorgen, dass ein Zertifikat rechtzeitig erneuert wird. Siehe hierzu: How To: Zertifikat erneuern

Zertifikatssperrliste

Die Zertifikatssperrliste kann derzeit ausschließlich über die SPS‑Shell ausgetauscht werden. Nur der Systemadministrator des Anlagenbetreibers sollte diese Sperrliste ändern können.

Tipp

Für eine Referenz der Funktionen des Security-Screen siehe: Security-Screen

Für eine Referenz der Funktionen der SPS-Shell siehe: SPS-Shell

Zertifikatsketten

Zwischen dem Root‑CA und dem Endzertifikat des OPC UA Servers oder Clients befinden sich ein oder mehrere Intermediate‑CA‑Zertifikate. Diese Zertifikats-Mittelschicht kann bei Bedarf einfach widerrufen und ersetzt werden, ohne das Root‑CA ändern zu müssen.

Die Unterstützung von Zertifikatsketten ist eine wichtige Maßnahme, um die Benutzerfreundlichkeit zu steigern und die Konfiguration zu erleichtern.

Zertifikatsketten enthalten neben dem eigentlichen genutzten X.509-Zertifikat auch die zugehörigen Zwischen- und Stamm-CA-Zertifikate. Diese zusätzlichen Zertifikate sind erforderlich, um die gesamte Kette bis zu den vertrauenswürdigen Stamm-CAs zu validieren. Ein X.509-Zertifikat ist ein eindeutiges digitales Zertifikat, das eine bestimmte Entität (beispielsweise Benutzer, Gerät oder Software) identifiziert.

Zertifikatsketten enthalten neben dem eigentlichen genutzten X.509-Zertifikat auch die zugehörigen Zwischen- und Stamm-CA-Zertifikate. Diese zusätzlichen Zertifikate sind erforderlich, um die gesamte Kette bis zu den vertrauenswürdigen Stamm-CAs zu validieren. Ein X.509-Zertifikat ist ein eindeutiges digitales Zertifikat, das eine bestimmte Entität (beispielsweise Benutzer, Gerät oder Software) identifiziert.

  • Die CA-Zwischenzertifikate müssen nicht auf die SPS übertragen werden. Das führt zu geringerem Konfigurationsaufwand.

  • Es genügt, dass auf der SPS vertrauenswürdige Root-Zertifikate (von einer Root CA) konfiguriert sind.

  • Wenn sich eine Kette ändert, beispielsweise weil ein Zwischenzertifikat abgelaufen ist, ist keine erneute Konfiguration des Zwischenzertifikats auf der validierenden SPS notwendig.