Freigeben über


Konfigurieren der OPC UA-Zertifikatinfrastruktur für den Anschluss für OPC UA

In diesem Artikel erfahren Sie, wie Sie die OPC UA-Zertifikatinfrastruktur für den Anschluss für OPC UA konfigurieren. Mit dieser Konfiguration können Sie festlegen, welchen OPC UA-Servern Sie vertrauen, um eine sichere Sitzung einzurichten.

Auf der Grundlage der OPC UA-Spezifikation fungiert der Anschluss für OPC UA als einzelne OPC UA-Anwendung, wenn eine sichere Kommunikation mit OPC UA-Servern hergestellt wird. Der Anschluss für OPC UA verwendet dasselbe Anwendungsinstanzzertifikat für alle sicheren Kanäle, die zu den OPC UA-Servern geöffnet werden.

Weitere Informationen finden Sie unter Konfigurieren der OPC UA-Zertifikatinfrastruktur für den Anschluss für OPC UA.

Voraussetzungen

Konfigurieren eines selbstsignierten Anwendungsinstanzzertifikats

Die Standardbereitstellung des Anschlusses für OPC UA installiert alle Ressourcen, die von cert-manager benötigt werden, um ein selbstsigniertes OPC UA-kompatibles Zertifikat zu erstellen. Dieses Zertifikat wird im Geheimnis aio-opc-opcuabroker-default-application-cert gespeichert. Dieses Geheimnis wird allen Pods für den Anschluss für OPC UA zugeordnet und fungiert als Anwendungsinstanzzertifikat des OPC UA-Clients. cert-manager behandelt die automatische Verlängerung dieses Anwendungsinstanzzertifikats.

Diese Konfiguration reicht in der Regel für die kompatible und sichere Kommunikation zwischen Ihren OPC UA-Servern und dem Anschluss für OPC UA in einer Demonstrations- oder Erkundungsumgebung aus. Für eine Produktionsumgebung sollten Sie Anwendungsinstanzzertifikate auf Unternehmensniveau in Ihrer Bereitstellung verwenden.

Konfigurieren der Liste vertrauenswürdiger Zertifikate

Um eine Verbindung mit einem Objekt herzustellen, müssen Sie zuerst die gegenseitige Vertrauensstellung der Anwendungsauthentifizierung einrichten. Führen Sie für den Anschluss für OPC UA die folgenden Schritte aus:

  1. Rufen Sie das Instanzzertifikat der OPC UA-Serveranwendung als Datei ab. Diese Dateien haben in der Regel die Erweiterung „.der“ oder „.crt“. Dies ist nur der öffentliche Schlüssel.

    Tipp

    In der Regel verfügen OPC UA-Server über eine Schnittstelle, über die Sie ihr Anwendungsinstanzzertifikat exportieren können. Diese Schnittstelle ist nicht standardisiert. Für Server wie KEPServerEx steht eine Windows-basierte Konfigurationsbenutzeroberfläche für die Zertifikatverwaltung zur Verfügung. Andere Server verfügen möglicherweise über eine Webschnittstelle oder verwenden Betriebssystemordner zum Speichern der Zertifikate. Weitere Informationen zum Exportieren des Anwendungsinstanzzertifikats finden Sie im Benutzerhandbuch Ihres Servers. Nachdem Sie das Zertifikat erhalten haben, stellen Sie sicher, dass es DER- oder PEM-codiert ist. Es wird in der Regel in Dateien mit der Erweiterung „.der“ oder „.crt“ gespeichert. Wenn das Zertifikat keins dieser Formate hat, verwenden Sie ein Tool wie openssl, um das Zertifikat in das erforderliche Dateiformat zu transformieren.

  2. Fügen Sie das Anwendungsinstanzzertifikat des OPC UA-Servers zur Liste der vertrauenswürdigen Zertifikate hinzu. Diese Liste wird als natives Kubernetes-Geheimnis namens aio-opc-ua-broker-trust-list implementiert, das beim Bereitstellen von „Azure IoT Einsatz“ erstellt wird.

    Führen Sie für ein DER-codiertes Zertifikat in einer Datei wie ./my-server.der den folgenden Befehl aus:

    # Append my-server.der OPC UA server certificate to the trusted certificate list secret as a new entry
    az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server.der"
    

    Führen Sie für ein PEM-codiertes Zertifikat in einer Datei wie ./my-server.crt den folgenden Befehl aus:

    # Append my-server.crt OPC UA server certificate to the trusted certificate list secret as a new entry
    az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server.crt"
    

Wenn Ihr OPC UA-Server ein von einer Zertifizierungsstelle ausgestelltes Zertifikat verwendet, können Sie der Zertifizierungsstelle vertrauen, indem Sie das Zertifikat mit öffentlichem Schlüssel zur Liste vertrauenswürdiger Zertifikate des Anschlusses für OPC UA hinzufügen. Ihr Anschluss für OPC UA vertraut nun automatisch allen Servern, die ein gültiges Zertifikat verwenden, das von der Zertifizierungsstelle ausgestellt wurde. Daher müssen Sie das Zertifikat des OPC UA-Servers nicht explizit zur Liste vertrauenswürdiger Zertifikate des Anschlusses für OPC UA hinzufügen.

Um einer Zertifizierungsstelle zu vertrauen, müssen Sie die folgenden Schritte ausführen:

  1. Rufen Sie den öffentlichen Schlüssel des Zertifizierungsstellenzertifikats im DER- oder PEM-Format ab. Diese Zertifikate werden in der Regel in Dateien mit der Erweiterung „.der“ oder „.crt“ gespeichert. Rufen Sie die Sperrliste der Zertifizierungsstelle ab. Diese Liste ist in der Regel in einer Datei mit der Erweiterung „.crl“ enthalten. Ausführliche Informationen finden Sie in der Dokumentation des OPC UA-Servers.

  2. Speichern Sie das Zertifizierungsstellenzertifikat und die Sperrliste im nativen Kubernetes-Geheimnis aio-opc-ua-broker-trust-list.

    Führen Sie für ein DER-codiertes Zertifizierungsstellenzertifikat in einer Datei wie ./my-server-ca.der die folgenden Befehle aus:

    # Append CA certificate to the trusted certificate list secret as a new entry
    az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.der"
    
    # Append the CRL to the trusted certificate list secret as a new entry
    data=$(kubectl create secret generic temp --from-file= my-server-ca.crl=./ my-server-ca.crl --dry-run=client -o jsonpath='{.data}')
    kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{`"data`": $data}"
    

    Führen Sie für ein PEM-codiertes Zertifizierungsstellenzertifikat in einer Datei wie ./my-server-ca.crt die folgenden Befehle aus:

    # Append CA certificate to the trusted certificate list secret as a new entry
    az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crt"
    
    # Append the CRL to the trusted certificates list secret as a new entry
    data=$(kubectl create secret generic temp --from-file=my-server-ca.crl=./my-server-ca.crl --dry-run=client -o jsonpath='{.data}')
    kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{`"data`": $data}"
    

Konfigurieren der Ausstellerzertifikatliste

Wenn Ihr OPC UA-Server ein von einer Zertifizierungsstelle ausgestelltes Zertifikat verwendet, Sie jedoch nicht alle von der Zertifizierungsstelle ausgestellten Zertifikate als vertrauenswürdig festlegen möchten, führen Sie die folgenden Schritte aus:

  1. Vertrauen Sie dem Anwendungsinstanzzertifikat des OPC UA-Servers, indem Sie die ersten drei Schritte im vorherigen Abschnitt ausführen.

  2. Neben dem Zertifikat selbst benötigt der Anschluss für OPC UA das Zertifizierungsstellenzertifikat, um die Ausstellerkette des OPC UA-Serverzertifikats ordnungsgemäß zu überprüfen. Fügen Sie das Zertifizierungsstellenzertifikat und seine Zertifikatssperrliste einer separaten Liste namens aio-opc-ua-broker-issuer-list hinzu, die als Kubernetes-Geheimnis implementiert ist.

    1. Speichern Sie das Zertifizierungsstellenzertifikat und die Zertifikatssperrliste im aio-opc-ua-broker-issuer-list-Geheimnis.

      # Append CA certificate to the issuer list secret as a new entry
      az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.der"
      
      # Append the CRL to the issuer list secret as a new entry
      az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crl"
      

      Führen Sie für ein PEM-codiertes Zertifikat in einer Datei wie ./my-server-ca.crt den folgenden Befehl aus:

      # Append CA certificate to the issuer list secret as a new entry
      az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crt"
      
      # Append the CRL to the issuer list secret as a new entry
      az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crl"
      

Konfigurieren des OPC UA-Servers

Um die Konfiguration der gegenseitigen Vertrauensstellung der Anwendungsauthentifizierung abzuschließen, müssen Sie Ihren OPC UA-Server so konfigurieren, dass er das Anwendungsinstanzzertifikat des Anschlusses für OPC UA als vertrauenswürdig einstuft:

  1. Führen Sie den folgenden Befehl aus, um das Zertifikat für den Anschluss für OPC UA in eine opcuabroker.crt-Datei zu extrahieren:

    kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d > opcuabroker.crt
    
  2. Viele OPC UA-Server unterstützen zertifikate nur im DER-Format. Verwenden Sie bei Bedarf den folgenden Befehl, um das Zertifikat opcuabroker.crt in opcuabroker.der zu konvertieren:

    openssl x509 -outform der -in opcuabroker.crt -out opcuabroker.der
    
  3. In der Dokumentation Ihres OPC UA-Servers wird erläutert, wie Sie die Zertifikatdatei opcuabroker.crt oder opcuabroker.der zur Liste der vertrauenswürdigen Zertifikate des Servers hinzufügen.

Konfigurieren eines Anwendungsinstanzzertifikats auf Unternehmensniveau

Für Produktionsumgebungen können Sie den Anschluss für OPC UA so konfigurieren, dass ein Anwendungsinstanzzertifikat auf Unternehmensniveau verwendet wird. In der Regel stellt eine Zertifizierungsstelle für Unternehmen dieses Zertifikat aus, und Sie benötigen das Zertifizierungsstellenzertifikat in Ihrer Konfiguration. Häufig gibt es eine Hierarchie von Zertifizierungsstellen, und Sie müssen Ihrer Konfiguration die vollständige Validierungskette von Zertifizierungsstellen hinzufügen.

Das folgende Beispiel verweist auf die folgenden Elemente:

Artikel Beschreibung
opcuabroker-certificate.der Datei, die den öffentlichen Schlüssel des Anwendungsinstanzzertikats auf Unternehmensniveau enthält
opcuabroker-certificate.pem Datei, die den privaten Schlüssel des Anwendungsinstanzzertikats auf Unternehmensniveau enthält
subjectName Die in das Anwendungsinstanzzertifikat eingebettete Zeichenfolge für den Antragstellernamen
applicationUri Der in die Anwendungsinstanz eingebettete Anwendungsinstanz-URI
enterprise-grade-ca-1.der Datei, die den öffentlichen Schlüssel des Zertifizierungsstellenzertifikats auf Unternehmensniveau enthält
enterprise-grade-ca-1.crl Die Datei mit der Zertifikatssperrliste der Zertifizierungsstelle.

Wie in den vorherigen Beispielen verwenden Sie ein dediziertes Kubernetes-Geheimnis zum Speichern der Zertifikate und Zertifikatssperrlisten. Führen Sie die folgenden Schritte aus, um das Zertifikat der Anwendungsinstanz auf Unternehmensniveau zu konfigurieren.

  1. Speichern Sie die Zertifikate und die Zertifikatssperrliste im Geheimnis aio-opc-ua-broker-client-certificate, indem Sie den folgenden Befehl verwenden:

    # Create aio-opc-ua-broker-client-certificate secret
    # Upload OPC UA public key certificate as an entry to the secret
    # Upload OPC UA private key certificate as an entry to the secret
    az iot ops connector opcua client add \
        --instance <your instance name> \
        -g <your resource group> \
        --public-key-file "./opcuabroker-certificate.der" \
        --private-key-file "./opcuabroker-certificate.pem" \
        --subject-name <subject name from the public key cert> \
        --application-uri <application uri from the public key cert>
    
  2. Wenn Sie die Zertifizierungsstelle verwenden, um Zertifikate für Ihren OPC UA-Broker auszustellen, konfigurieren Sie das Geheimnis aio-opc-ua-broker-issuer-list. Verwenden Sie einen Kubernetes-Client wie kubectl, um die Geheimnisse enterprise-grade-ca-1.der und enterprise-grade-ca-1.crl zu konfigurieren:

    # Append CA certificate to the issuer list secret as a new entry
    az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./enterprise-grade-ca-1.der"
    
    # Append the CRL to the issuer list secret as a new entry
    az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./enterprise-grade-ca-1.crl"
    

Da der Anschluss für OPC UA nun das Unternehmenszertifikat verwendet, vergessen Sie nicht, den öffentlichen Schlüssel des neuen Zertifikats in den Listen vertrauenswürdiger Zertifikate aller OPC UA-Server hinzuzufügen, mit denen eine Verbindung hergestellt werden muss.