Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
IoT Edge 1.1
Wichtig
IoT Edge 1.1 Ende des Supports war der 13. Dezember 2022. Informationen darüber, wie dieses Produkt, dieser Dienst, diese Technologie oder diese API unterstützt werden, finden Sie im Microsoft Product Lifecycle. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Update IoT Edge.
Dieser Artikel enthält detaillierte Anweisungen zur Konfiguration eines IoT Edge-Geräts, das als transparentes Gateway für andere Geräte zur Kommunikation mit IoT Hub dient. In diesem Artikel wird mit dem Begriff IoT Edge-Gateway auf ein IoT Edge-Gerät verwiesen, das als transparentes Gateway konfiguriert wurde. Weitere Informationen finden Sie unter Verwendung eines IoT Edge-Geräts als Gateway.
Hinweis
In IoT Edge-Versionen 1.1 und älter kann ein IoT Edge-Gerät nicht als untergeordnetes Gerät hinter einem IoT Edge-Gateway konfiguriert werden.
Nachgeschaltete Geräte können keinen Dateiupload verwenden.
Es gibt drei allgemeine Schritte zum Einrichten einer erfolgreichen Verbindung mit einem transparenten Gateway. In diesem Artikel wird der erste Schritt behandelt:
- Konfigurieren Sie das Gatewaygerät als Server, sodass sich nachgeschaltete Geräte mit ihm sicher verbinden können. Richten Sie das Gateway so ein, dass es Nachrichten von nachgeschalteten Geräten empfängt und an das richtige Ziel weiterleitet.
- Erstellen Sie eine Geräteidentität für das nachgeschaltete Gerät, damit es 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.
- 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.
Damit ein Gerät als Gateway fungieren kann, muss es sichere Verbindungen mit nachgeschalteten Geräten herstellen können. Mit Azure IoT Edge können Sie mithilfe der Public Key-Infrastruktur sichere Verbindungen zwischen Geräten einrichten. In diesem Fall lassen wir zu, dass ein nachgeschaltetes Gerät eine Verbindung mit einem IoT Edge-Gerät, das als transparentes Gateway fungiert, herstellt. Um eine angemessene Sicherheit zu gewährleisten, sollte das nachgeschaltete Gerät die Identität des Gatewaygeräts bestätigen. Diese Überprüfung der Identität verhindert, dass Ihre Geräte Verbindungen mit potenziell schädlichen Gateways herstellen.
Ein nachgeschaltetes Gerät kann eine beliebige Anwendung oder Plattform sein, deren Identität mit dem Azure IoT Hub-Clouddienst 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. Ein IoT Edge-Gerät kann jedoch nicht als nachgelagertes Gerät eines IoT Edge-Gateways fungieren.
Sie können eine beliebige Zertifikatinfrastruktur erstellen, die die für Ihre Gerät-zu-Gateway-Topologie erforderliche Vertrauensstellung ermöglicht. In diesem Artikel gehen wir von derselben Zertifikatseinrichtung aus, die Sie zur Aktivierung der X.509-CA-Sicherheit in IoT Hub verwenden würden. Dies beinhaltet ein X.509-CA-Zertifikat, das einem bestimmten IoT-Hub zugeordnet ist (der Root-CA des IoT Hubs), eine Reihe von Zertifikaten, die mit dieser CA signiert wurden, sowie eine CA für das IoT Edge-Gerät.
Hinweis
Der in diesen Artikeln verwendete Begriff Stammzertifizierungsstellen-Zertifikat bezieht sich auf das öffentliche Zertifikat der obersten Instanz der PKI-Zertifikatskette und nicht unbedingt auf den Zertifikatstamm einer konsolidierten Zertifizierungsstelle. In vielen Fällen handelt es sich tatsächlich um ein öffentliches Zertifikat einer Zwischenzertifizierungsstelle.
In den folgenden Schritten werden Sie durch den Prozess zum Erstellen der Zertifikate und zum Installieren an den richtigen Orten auf dem Gateway geführt. Sie können mit jedem beliebigen Computer Zertifikate generieren und sie dann auf Ihr IoT Edge-Gerät kopieren.
Voraussetzungen
Ein Linux- oder Windows-Gerät, auf dem IoT Edge installiert ist.
Wenn Sie kein Gerät zur Hand haben, können Sie eines in einem virtuellen Azure-Computer erstellen. 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 Geräte-CA-Zertifikats
Alle IoT Edge-Gateways benötigen ein auf ihnen installiertes Geräte-CA-Zertifikat. Der IoT Edge-Sicherheitsdaemon verwendet das IoT Edge-Geräte-CA-Zertifikat, um ein Workload-CA-Zertifikat zu signieren, das wiederum ein Serverzertifikat für den 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.
Das Zertifikat der Stammzertifizierungsstelle und das Gerätezertifizierungsstellenzertifikat (mit seinem privaten Schlüssel) müssen auf dem IoT Edge-Gatewaygerät vorhanden sein und in der IoT Edge-Konfigurationsdatei konfiguriert sein. Beachten Sie, dass in diesem Fall Root-CA-Zertifikat die höchste Zertifizierungsstelle für dieses IoT Edge-Szenario bedeutet. Das Zertifikat der Zertifizierungsstelle des Gateway-Geräts und die Zertifikate der nachgeschalteten Geräte müssen bis zur selben Stammzertifizierungsstelle zusammengeführt werden.
Tipp
Der Prozess der Installation des Zertifikats der Stammzertifizierungsstelle und des Gerätezertifikats auf einem IoT Edge-Gerät wird in Verwalten von Zertifikaten auf einem IoT Edge-Gerätausführlicher erläutert.
Halten Sie die folgenden Dateien bereit:
- Root-CA-Zertifikat
- Geräte-CA-Zertifikat
- Privater Schlüssel der Geräte-CA
In Produktionsszenarios sollten diese Dateien mit Ihrer eigenen Zertifizierungsstelle generiert werden. 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. Auf dieser Seite müssen Sie die folgenden Schritte ausführen:
- Richten Sie zuerst die Skripts zum Erstellen von Zertifikaten auf Ihrem Gerät ein.
- Erstellen Sie ein Stammzertifikat der Zertifizierungsstelle. Am Ende dieser Anweisungen haben Sie eine Wurzelzertifikatsdatei
<path>/certs/azure-iot-test-only.root.ca.cert.pem. - Erstellen Sie CA-Zertifikate für IoT Edge-Geräte. Am Ende dieser Anweisungen verfügen Sie über ein Gerätezertifizierungszertifikat
<path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pemden privaten Schlüssel<path>/private/iot-edge-device-ca-<cert name>.key.pem.
Kopieren von Zertifikaten auf das Gerät
Überprüfen Sie, ob das Zertifikat die Formatanforderungen erfüllt.
Wenn Sie die Zertifikate auf einem anderen Computer erstellt haben, kopieren Sie sie auf Ihr IoT Edge-Gerät. Sie können dazu einen USB-Datenträger, einen Dienst wie Azure Key Vault oder eine Funktion wie Secure file copy verwenden.
Verschieben Sie die Dateien in das bevorzugte Verzeichnis für Zertifikate und Schlüssel. Verwenden Sie
/var/aziot/certsfür Zertifikate und/var/aziot/secretsfür Schlüssel.Erstellen Sie die Zertifikate und Schlüsselverzeichnisse, und legen Sie Berechtigungen fest. Sie sollten Ihre Zertifikate und Schlüssel im bevorzugten Verzeichnis
/var/aziotspeichern. Verwenden Sie/var/aziot/certsfür Zertifikate und/var/aziot/secretsfü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Ändern Sie den Besitz und die Berechtigungen der 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
Öffnen Sie auf Ihrem IoT Edge-Gerät die Konfigurationsdatei für den Sicherheitsdaemon.
- Windows:
C:\ProgramData\iotedge\config.yaml - Linux:
/etc/iotedge/config.yaml - IoT Edge für Linux unter Windows:
/etc/iotedge/config.yaml
Tipp
Wenn Sie IoT Edge für Linux unter Windows (EFLOW) verwenden, müssen Sie eine Verbindung mit dem virtuellen EFLOW-Computer herstellen und die Datei innerhalb der VM ändern. Sie können eine Verbindung mit der EFLOW-VM mithilfe des PowerShell-Cmdlets
Connect-EflowVmherstellen und dann Ihren bevorzugten Editor verwenden.- Windows:
Suchen Sie den Abschnitt der Zertifikateinstellungen in der Datei. Entfernen Sie die Kommentarzeichen von den vier Zeilen, die mit Zertifikaten: beginnen, und stellen Sie die Datei-URIs für Ihre drei Dateien als Werte für die folgenden Eigenschaften bereit.
- device_ca_cert: Gerätezertifikat der Zertifizierungsstelle
- device_ca_pk: Gerätezertifizierungsstellen-Privatschlüssel
- trusted_ca_certs: Root-CA-Zertifikat
Stellen Sie sicher, dass für die Zertifikate kein vorheriges Leerzeichen vorhanden ist: Zeile und dass die anderen Zeilen durch zwei Leerzeichen eingezogen werden.
Speichern und schließen Sie die Datei.
Starten Sie IoT Edge neu.
- Windows:
Restart-Service iotedge - Linux:
sudo systemctl restart iotedge - IoT Edge für Linux unter Windows:
sudo systemctl restart iotedge
- Windows:
Bereitstellen von edgeHub und Weiterleiten von Nachrichten
Nachgeschaltete Geräte senden Telemetriedaten und Nachrichten an das Gatewaygerät, wobei das Modul „IoT Edge-Hub“ für das Routing der Informationen an andere Module oder IoT Hub zuständig ist. 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 zum ersten Mal auf einem Gerät installieren, startet nur ein Systemmodul automatisch: der IoT Edge-Agent. Nachdem Sie die erste Bereitstellung für ein Gerät erstellt haben, wird das zweite Systemmodul und der IoT Edge-Hub ebenfalls gestartet. 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.
Für das Gatewaygerät muss eine Route vorhanden sein, damit Nachrichten von nachgeschalteten Geräten verarbeitet werden können. Andernfalls ist eine Verarbeitung nicht möglich. 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 Modul „IoT Edge-Hub“ bereitzustellen und mit Routen zur Verarbeitung eingehender Nachrichten von nachgeschalteten Geräten zu konfigurieren:
Navigieren Sie im Azure-Portal zu Ihrem IoT Hub.
Wechseln Sie im Geräteverwaltung-Menü zu Geräte und wählen Sie das IoT Edge-Gerät aus, das Sie als Gateway verwenden möchten.
Wählen Sie Module festlegen aus.
Auf der Seite Module können Sie alle Module hinzufügen, die Sie auf dem Gatewaygerät bereitstellen möchten. Für den Zweck dieses Artikels konzentrieren wir uns auf die Konfiguration und Bereitstellung des Moduls „edgeHub“, das auf dieser Seite nicht explizit festgelegt werden muss.
Wählen Sie Weiter: Routen aus.
Stellen Sie auf der Seite Routen sicher, dass es eine Route zum Verarbeiten von Nachrichten von nachgeschalteten Geräten gibt. 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
-
Name:
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
Nachrichten von nachgeschalteten Geräten haben – im Gegensatz zu Nachrichten von IoT Edge Modulen – keine Modul-ID zugeordnet, daher funktioniert diese Route. Mithilfe der WHERE-Klausel der Route können alle Nachrichten mit dieser Systemeigenschaft herausgefiltert werden.
Weitere Informationen zum Routing von Nachrichten finden Sie unter Bereitstellen von Modulen und Einrichten von Routen.
-
Name:
Nachdem Ihre Route(n) erstellt wurde(n), wählen Sie Überprüfen + erstellen aus.
Klicken Sie auf der Seite Überprüfen und erstellen auf Erstellen.
Ö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
Da nun ein IoT Edge-Gerät als transparentes Gateway eingerichtet ist, müssen Sie Ihre nachgeschalteten Geräte so konfigurieren, dass sie dem Gateway vertrauen und Nachrichten daran senden. Lesen Sie Authentifizieren eines nachgeschalteten Geräts bei Azure IoT Hub, um die nächsten Schritte zum Einrichten Ihres Szenarios eines transparenten Gateways auszuführen.