Teilen über


Konfigurieren eines IoT Edge-Geräts als transparentes Gateway

Gilt für:Häkchen für IoT Edge 1.5 IoT Edge 1.5

Wichtig

IoT Edge 1.5 LTS ist das unterstützte Release. IoT Edge 1.4 LTS wurde am 12. November 2024 eingestellt. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

Dieser Artikel enthält detaillierte Anweisungen zum Konfigurieren eines IoT Edge-Geräts als transparentes Gateway, damit andere Geräte eine Verbindung mit IoT Hub herstellen können. In diesem Artikel bedeutet IoT Edge-Gateway ein IoT Edge-Gerät, das als transparentes Gateway konfiguriert ist. Weitere Informationen finden Sie unter Verwendung eines IoT Edge-Geräts als Gateway.

Hinweis

Nachgeschaltete Geräte können keinen Dateiupload verwenden.

Es gibt drei Hauptschritte zum Einrichten einer transparenten Gatewayverbindung. In diesem Artikel wird der erste Schritt behandelt:

  1. Konfigurieren Sie das Gatewaygerät als Server, damit nachgeschaltete Geräte sicher eine Verbindung herstellen können. Richten Sie das Gateway ein, um Nachrichten von nachgeschalteten Geräten zu empfangen und an das richtige Ziel weiterzuleiten.
  2. Erstellen Sie eine Geräteidentität für das nachgeschaltete Gerät, damit sie sich bei IoT Hub authentifizieren kann. Konfigurieren Sie das nachgeschaltete Gerät zum Senden von Nachrichten über das Gatewaygerät. Die Schritte finden Sie unter Authentifizieren eines nachgeschalteten Geräts bei Azure IoT Hub.
  3. Verbinden Sie das nachgeschaltete Gerät mit dem Gatewaygerät, und beginnen Sie mit dem Senden von Nachrichten. Die dazu erforderlichen Schritte finden Sie unter Verbinden eines nachgeschalteten Geräts mit einem Azure IoT Edge-Gateway.

Um als Gateway zu fungieren, muss ein Gerät sicher mit seinen nachgeschalteten Geräten verbunden werden. Mit Azure IoT Edge können Sie die Public Key-Infrastruktur (Public Key Infrastructure, PKI) verwenden, um sichere Verbindungen zwischen Geräten einzurichten. In diesem Fall verbindet sich ein peripheres Gerät mit einem IoT Edge-Gerät, das als transparentes Gateway fungiert. Um die Sicherheit zu gewährleisten, überprüft das nachgeschaltete Gerät die Identität des Gatewaygeräts. Diese Überprüfung verhindert, dass Geräte eine Verbindung mit schädlichen Gateways herstellen.

Ein nachgeschaltetes Gerät kann eine beliebige Anwendung oder Plattform mit einer identität sein, die in Azure IoT Hub erstellt wurde. Diese Anwendungen verwenden häufig das Azure IoT-Geräte-SDK. Ein nachgeschaltetes Gerät kann sogar eine Anwendung sein, die auf dem IoT Edge-Gatewaygerät selbst ausgeführt wird.

Sie können eine beliebige Zertifikatinfrastruktur erstellen, die die für Ihre Gerät-zu-Gateway-Topologie erforderliche Vertrauensstellung ermöglicht. In diesem Artikel verwenden wir dasselbe Zertifikatsetup wie die X.509 CA-Sicherheit im IoT Hub. Bei diesem Setup wird ein X.509-Zertifizierungsstellenzertifikat verwendet, das einer spezifischen IoT-Hub-Stammzertifizierungsstelle zugeordnet ist, sowie mehrere mit dieser Zertifizierungsstelle signierte Zertifikate und eine weitere Zertifizierungsstelle für das IoT Edge-Gerät.

Hinweis

Der in diesem Artikel verwendete Begriff Stammzertifizierungsstellen-Zertifikat (Stamm-ZS-Zertifikat) bezieht sich auf die oberste Zertifizierungsstelle des öffentlichen Zertifikats der PKI-Vertrauenskette. Es muss nicht unbedingt der Zertifikatstamm einer fremden Zertifizierungsstelle sein. In vielen Fällen handelt es sich tatsächlich um ein öffentliches Zwischenzertifikat der Zertifizierungsstelle.

Führen Sie die folgenden Schritte aus, um die Zertifikate zu erstellen und an den richtigen Stellen auf dem Gateway zu installieren. Verwenden Sie einen beliebigen Computer, um die Zertifikate zu generieren, und kopieren Sie sie dann auf Ihr IoT Edge-Gerät.

Voraussetzungen

Sie benötigen ein Linux- oder Windows-Gerät, auf dem IoT Edge installiert ist.

Wenn Sie kein Gerät bereit haben, erstellen Sie ein Gerät auf einem virtuellen Azure-Computer. Führen Sie die Schritte in Bereitstellen Ihres ersten IoT Edge-Moduls auf einem virtuellen Linux-Gerät zum Erstellen eines IoT Hubs, Erstellen eines virtuellen Computers und Konfigurieren der IoT Edge-Runtime aus.

Einrichten des Edgezertifizierungsstellenzertifikats

Für alle IoT Edge-Gateways muss ein Edgezertifizierungsstellenzertifikat installiert sein. Der IoT Edge-Sicherheitsdaemon verwendet das Edgezertifizierungsstellenzertifikat zum Signieren eines Workloadzertifizierungsstellenzertifikats, das wiederum ein Serverzertifikat für IoT Edge Hub signiert. Das Gateway legt dem nachgeschalteten Gerät während der Initiierung der Verbindung sein Serverzertifikat vor. Das nachgeschaltete Gerät überprüft, ob das Serverzertifikat Teil einer Zertifikatskette ist, die zum Zertifikat der Stammzertifizierungsstelle führt. Durch diesen Vorgang kann das nachgeschaltete Gerät bestätigen, dass das Gateway aus einer vertrauenswürdigen Quelle stammt. Weitere Informationen finden Sie unter Grundlegendes zur Verwendung von Zertifikaten durch Azure IoT Edge.

Screenshot der Einrichtung des Gatewayzertifikats

Das Zertifikat der Stammzertifizierungsstelle und das Edge-Zertifizierungsstellenzertifikat (mit seinem privaten Schlüssel) müssen sich auf dem IoT Edge-Gatewaygerät befinden und in der IoT Edge-Konfigurationsdatei festgelegt sein. In diesem Fall bedeutet Root-CA-Zertifikat die übergeordnete Zertifizierungsstelle für dieses IoT-Edge-Szenario. Für das Edgezertifizierungsstellenzertifikat des Gateways und die nachgeschalteten Geräte müssen Sie ein Rollup auf dasselbe Stammzertifizierungsstellenzertifikat ausführen.

Tipp

Der Installationsprozess des Stammzertifizierungsstellenzertifikats und des Edgezertifizierungsstellenzertifikat auf einem IoT Edge-Gerät wird auch ausführlicher in Verwalten von Zertifikaten auf einem IoT Edge-Gerät erläutert.

Halten Sie die folgenden Dateien bereit:

  • Zertifikat der Stammzertifizierungsstelle
  • Zertifikat der Edgezertifizierungsstelle
  • Privater Schlüssel des Zertifikats der Gerätezertifizierungsstelle

Generieren Sie diese Dateien für Produktionsszenarien mit Ihrer eigenen Zertifizierungsstelle. Für Entwicklungs- und Testszenarios können Sie Demozertifikate verwenden.

Erstellen von Demozertifikaten

Wenn Sie keine eigene Zertifizierungsstelle haben und Demozertifikate verwenden möchten, folgen Sie den Anleitungen unter Erstellen von Demozertifikaten zum Testen der Features von IoT Edge-Geräten zum Erstellen Ihrer Dateien. Führen Sie auf dieser Seite die folgenden Schritte aus:

  1. Richten Sie die Skripts zum Generieren von Zertifikaten auf Ihrem Gerät ein.
  2. Erstellen Sie ein Stammzertifikat der Zertifizierungsstelle. Am Ende haben Sie eine Zertifikatdatei <path>/certs/azure-iot-test-only.root.ca.cert.pemder Stamm-CA.
  3. Erstellen von Edgezertifizierungsstellenzertifikaten Am Ende verfügen Sie über ein Edge CA-Zertifikat <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem und dessen privaten Schlüssel <path>/private/iot-edge-device-ca-<cert name>.key.pem.

Kopieren von Zertifikaten auf das Gerät

  1. Überprüfen Sie, ob das Zertifikat die Formatanforderungen erfüllt.

  2. Wenn Sie die Zertifikate auf einem anderen Computer erstellt haben, kopieren Sie sie auf Ihr IoT Edge-Gerät. Verwenden Sie ein USB-Laufwerk, einen Dienst wie Azure Key Vault oder einen Befehl wie sichere Dateikopie.

  3. Verschieben Sie die Dateien in das bevorzugte Verzeichnis für Zertifikate und Schlüssel: /var/aziot/certs für Zertifikate und /var/aziot/secrets für Schlüssel.

  4. Erstellen Sie die Zertifikate und Schlüsselverzeichnisse, und legen Sie Berechtigungen fest. Speichern Sie Ihre Zertifikate und Schlüssel im bevorzugten /var/aziot Verzeichnis: /var/aziot/certs für Zertifikate und /var/aziot/secrets für Schlüssel.

    # If the certificate and keys directories don't exist, create, set ownership, and set permissions
    sudo mkdir -p /var/aziot/certs
    sudo chown aziotcs:aziotcs /var/aziot/certs
    sudo chmod 755 /var/aziot/certs
    
    sudo mkdir -p /var/aziot/secrets
    sudo chown aziotks:aziotks /var/aziot/secrets
    sudo chmod 700 /var/aziot/secrets
    
  5. Ändern Sie den Besitz und die Berechtigungen für die Zertifikate und Schlüssel.

    # Give aziotcs ownership to certificates
    # Read and write for aziotcs, read-only for others
    sudo chown -R aziotcs:aziotcs /var/aziot/certs
    sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \;
    
    # Give aziotks ownership to private keys
    # Read and write for aziotks, no permission for others
    sudo chown -R aziotks:aziotks /var/aziot/secrets
     sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
    

Konfigurieren von Zertifikaten auf dem Gerät

  1. Öffnen Sie auf Ihrem IoT Edge-Gerät die Konfigurationsdatei: /etc/aziot/config.toml. Wenn Sie IoT Edge für Linux unter Windows verwenden, stellen Sie mithilfe des PowerShell-Cmdlets eine Verbindung mit dem Connect-EflowVm virtuellen EFLOW-Computer her.

    Tipp

    Wenn die Konfigurationsdatei auf dem Gerät noch nicht vorhanden ist, verwenden Sie /etc/aziot/config.toml.edge.template als Vorlage zum Erstellen einer Datei.

  2. Suchen Sie den Parameter trust_bundle_cert. Heben Sie die Auskommentierung dieser Zeile auf, und geben Sie den Datei-URI zur Datei mit dem Zertifikat der Stammzertifizierungsstelle auf Ihrem Gerät an.

  3. Suchen Sie in der Datei den Abschnitt [edge_ca]. Heben Sie die Auskommentierung der drei Zeilen in diesem Abschnitt auf, und geben Sie die Datei-URIs zu Ihren Zertifikats- und Schlüsseldateien als Werte für die folgenden Eigenschaften an:

    • cert: Edgezertifizierungsstellenzertifikat
    • pk: privater Schlüssel des Zertifikats der Gerätezertifizierungsstelle
  4. Speichern und schließen Sie die Datei.

  5. Wenden Sie Ihre Änderungen an.

    sudo iotedge config apply
    

Bereitstellen von edgeHub und Weiterleiten von Nachrichten

Nachgeschaltete Geräte senden Telemetrie und Nachrichten an das Gatewaygerät, auf dem das IoT Edge-Hubmodul die Informationen an andere Module oder an IoT Hub weiter leitet. Sorgen Sie für Folgendes, um Ihr Gatewaygerät für diese Funktion vorzubereiten:

  • Das Modul „IoT Edge-Hub“ wird auf dem Gerät bereitgestellt.

    Wenn Sie IoT Edge auf einem Gerät installieren, wird nur ein Systemmodul automatisch gestartet: der IoT Edge-Agent. Wenn Sie die erste Bereitstellung für ein Gerät erstellen, starten auch das zweite Systemmodul und der IoT Edge Hub. Wenn das Modul edgeHub auf Ihrem Gerät nicht ausgeführt wird, erstellen Sie eine Bereitstellung für das Gerät.

  • Für das Modul „IoT Edge-Hub“ wurden Routen zur Verarbeitung eingehender Nachrichten von nachgeschalteten Geräten eingerichtet.

    Das Gatewaygerät benötigt eine Route zum Verarbeiten von Nachrichten von nachgeschalteten Geräten, oder diese Nachrichten werden nicht verarbeitet. Sie können die Nachrichten an Module auf dem Gatewaygerät oder direkt an IoT Hub senden.

Führen Sie die folgenden Schritte aus, um das IoT Edge-Hubmodul bereitzustellen und Routen für die Verarbeitung eingehender Nachrichten von nachgeschalteten Geräten zu konfigurieren:

  1. Navigieren Sie im Azure-Portal zu Ihrem IoT Hub.

  2. Wechseln Sie im Menü "Geräteverwaltung" zu "Geräte", und wählen Sie Ihr IoT Edge-Gerät aus, das als Gateway verwendet werden soll.

  3. Wählen Sie Module festlegen aus.

  4. Fügen Sie auf der Seite "Module " alle Module hinzu, die Sie auf dem Gatewaygerät bereitstellen möchten. In diesem Artikel konzentrieren Sie sich auf das Konfigurieren und Bereitstellen des EdgeHub-Moduls, das nicht explizit auf dieser Seite festgelegt werden muss.

  5. Wählen Sie Weiter: Routen aus.

  6. Stellen Sie auf der Seite "Routen " sicher, dass eine Route zum Verarbeiten von Nachrichten von nachgelagerten Geräten vorhanden ist. Zum Beispiel:

    • Eine Route, die alle Nachrichten – ganz gleich, ob von einem Modul oder einem nachgeschalteten Gerät – an IoT Hub sendet:

      • Name: allMessagesToHub
      • Wert: FROM /messages/* INTO $upstream
    • Eine Route, die sämtliche Nachrichten von allen nachgeschalteten Geräten an IoT Hub sendet:

      • Name: allDownstreamToHub
      • Wert: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream

      Diese Route funktioniert, weil Nachrichten von nachgeschalteten Geräten – im Gegensatz zu Nachrichten von IoT Edge Modulen – keine Modul-ID zugeordnet ist. Mithilfe der WHERE-Klausel der Route können Sie nachrichten mit dieser Systemeigenschaft herausfiltern.

      Weitere Informationen zum Routing von Nachrichten finden Sie unter Bereitstellen von Modulen und Einrichten von Routen.

  7. Nachdem Sie Ihre Route oder Routen erstellt haben, wählen Sie "Überprüfen" und "Erstellen" aus.

  8. Wählen Sie auf der Seite Überprüfen + erstellen die Option Erstellen aus.

Öffnen von Ports auf dem Gatewaygerät

Standard IoT Edge-Geräte benötigen keine eingehende Verbindung, um zu funktionieren, da die gesamte Kommunikation mit dem IoT Hub über ausgehende Verbindungen erfolgt. Gatewaygeräte unterscheiden sich dadurch, dass sie in der Lage sein müssen, Nachrichten von ihren nachgeschalteten Geräten zu empfangen. Wenn zwischen den nachgeschalteten Geräten und dem Gatewaygerät eine Firewall ist, muss die Kommunikation auch über die Firewall möglich sein.

Damit ein Gatewayszenario funktioniert, muss mindestens eines der unterstützten Protokolle des IoT Edge-Hubs für den eingehenden Datenverkehr von nachgeschalteten Geräten offen sein. Die unterstützten Protokolle sind MQTT, AMQP, HTTPS, MQTT über WebSockets und AMQP über WebSockets.

Hafen Protokoll
8883 MQTT
5671 AMQP
443 HTTPS
MQTT+WS
AMQP+WS

Nächste Schritte

Nachdem Sie nun ein IoT Edge-Gerät als transparentes Gateway eingerichtet haben, richten Sie Ihre nachgeschalteten Geräte so ein, dass sie dem Gateway vertrauen und Nachrichten an dieses senden. Fahren Sie mit der Authentifizierung eines nachgeschalteten Geräts beim Azure IoT Hub fort, um die nächsten Schritte in Ihrem transparenten Gatewayszenario auszuführen.