CA-signierte Zertifikate über die SPS-Shell anfordern und bereitstellen
Das Erstellen eines CSR für ein SPS-Zertifikat ist aktuell nur über die SPS-Shell des Geräteeditors möglich.
Wichtig
Bei der Erstellung eines CSR (CSR
= Certificate Signing Request
) fügt die SPS alle erforderlichen X509-Erweiterungen zur Zertifikatsignierungsanfrage hinzu. Daher kann eine Zertifizierungsstelle (CA) einige Erweiterungen hinzufügen, darf aber die vorhandenen Erweiterungen nicht weglassen. Wenn die Erweiterungen des CSR nicht im signierten Zertifikat vorhanden sind, kann es von der SPS nicht verwendet werden.
Beachten Sie unbedingt, dass das CA-signierte Zertifikat folgende Einträge vom CSR übernommen hat: Key Usage
, Extended Key Usage
, Subject Alternative Name
, jeweils mit dem Flag Critical
.Folgende Extensions müssen zwingend im CSR stehen: Key Usage
, Extended Key Usage
, Subject Alternative Name
, jeweils mit dem Flag Critical
.
Zuerst erzeugen Sie eine Zertifikatsanfrage für alle benötigten Zertifikate oder Komponenten (
CSR
=Certificate Signing Request
). Dies können auch Clientzertifikate werden (beispielsweise für den OPC UA-Client). Wählen Sie dazu die Registerkarte SPS-Shell der Steuerung. Geben Sie in die Eingabezeile den Befehlcert-createcsr
ein.Syntax:
cert-createcsr [<number retrieved by \"cert-getapplist\">] [encoding=Base64 | ASN.1]
<number retrieved by \"cert-getapplist\">
Optional: Angabe der Nummer einer einzelnen Komponente aus der Ausgabe von
cert -getapplist
. Wenn nicht angegeben, werden Zertifikate für alle ausgegebenen Komponenten erzeugt.encoding=Base64 | ASN.1
Optional: Angabe des Exportformats, Standardeinstellung:
ASN.1
.ANS.1
: Binäres Dateiformat für Zertifikate, CRS und asymmetrische Schlüssel.Base64
: Textuelle Repräsentation der ASN.1 Daten, basierend auf der Base64-Kodierung.Anmerkung
Das Dateiformat kann von CAs vorgegeben sein. Dann wird der CSR automatisch im korrekten Format erzeugt.
Ansonsten ist auch eine verlustfreie Umwandlung des einen Formats in das andere möglich. Beispielsweise mit Hilfe von OpenSSL:
openssl req -in <file name> -inform <DER|PEM> -out <file name_new> -outform <PEM|DER>
DER
entspricht ASN.1PEM
entspricht Base64Wählen Sie die Registerkarte Log und klicken Sie auf die Aktualisierungsschaltfläche
.
In den Logeinträgen sehen Sie, dass die CSR-Dateien erzeugt wurden.
Wählen Sie die Registerkarte Dateien und öffnen Sie im rechten Dialogteil Laufzeit den Dateipfad
cert/export
.Der Ordner
export
enthält die erzeugten CSR-Dateien.Beispiel:
0_CmpsecureChannl.csr, 1_CmpApp.csr, 2_CmpWebServer.csr
Wählen Sie im linken Dialogteil Host einen Dateipfad aus, wo Sie die CSR-Dateien einfügen wollen, markieren Sie im rechten Dialogteil die CSR-Dateien und klicken Sie auf
.
Die CSR-Dateien werden in den gewünschten Ordner kopiert.
Sie können diese Zertifikatsanfragen von einer Zertifizierungsstelle (Certificate Authority = CA) signieren lassen und erhalten dann von der Zertifizierungsstelle signierte Zertifikate.
In den folgenden Schritten importieren Sie diese signierten Zertifikate auf Ihre Steuerung.
Anmerkung
Nach einem Neustart der Steuerung werden automatisch die CA-signierten Zertifikate verwendet.
Tipp
Alternativ können sie den CODESYS Security Agent verwenden, um die Zertifikate auf die Steuerung zu übertragen. Für weitere Informationen siehe: CODESYS Security Agent
Wählen Sie im rechten Dialogteil Laufzeit den Pfad
cert/import
.Wählen Sie im linken Dialogteil Host den Pfad im Dateisystem, wo Sie die signierten Zertifikate abgelegt haben und selektieren Sie die Zertifikate.
Klicken Sie auf
.
Die Zertifikate werden in den Ordner
cert/import
kopiert.Wählen Sie nun die Registerkarte SPS-Shell.
Geben Sie in die Eingabezeile der Registerkarte den Befehl
cert-import own <file name of the certificate.cer>
ein und drücken Sie die Eingabetaste.Den Laufzeitsystem-Servern stehen die signierten Zertifikate zur Verfügung.
Anmerkung
In der Konfigurationsdatei der Steuerung (beispielsweise CODESYSControl.cfg
) kann für einen OPC UA Server mit folgendem Eintrag der Name der Organisation im Zertifikat gesetzt sein:
[CmpOPCUAServer]
SECURITY.CompanyOrOrganizationName="<organization name>"
Wenn der CODESYS Security Agent installiert ist, besteht außerdem die Möglichkeit, die Gerätesicherheitseinstellungen auf der Registerkarte Kommunikation des Geräteeditors zu bearbeiten.