Erstellen und Bereitstellen von IoT Edge-Geräten im großen Stil unter Windows mit X.509-Zertifikaten
Gilt für: IoT Edge 1.1
Wichtig
IoT Edge 1.1: Datum für das Supportende war der 13. Dezember 2022. Informationen zur Unterstützung für dieses Produkt, diesen Dienst, diese Technologie oder diese API finden Sie in der Microsoft Lifecycle-Richtlinie. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Update IoT Edge.
Dieser Artikel enthält umfassende Anweisungen für die automatische Bereitstellung eines oder mehrerer IoT Edge-Geräte unter Windows mithilfe von X.509-Zertifikaten. Sie können Azure loT Edge-Geräte mit dem Azure loT Hub-Device Provisioning Service (DPS) automatisch bereitstellen. Wenn Sie mit dem Prozess der automatischen Bereitstellung nicht vertraut sind, lesen Sie die Übersicht zur Bereitstellung, bevor Sie den Vorgang fortsetzen.
Hinweis
Azure IoT Edge mit Windows-Containern wird ab Version 1.2 von Azure IoT Edge nicht mehr unterstützt.
Ziehen Sie die neue Methode Azure IoT Edge für Linux unter Windows zum Ausführen von IoT Edge auf Windows-Geräten in Betracht.
Wenn Sie Azure IoT Edge für Linux unter Windows verwenden möchten, können Sie die Schritte in der entsprechenden Schrittanleitung ausführen.
Aufgaben:
- Generieren Sie Zertifikate und Schlüssel.
- Erstellen Sie entweder eine individuelle Registrierung für ein einzelnes Gerät oder eine Gruppenregistrierung für eine Gruppe von Geräten.
- Installieren Sie die IoT Edge-Runtime, und registrieren Sie das Gerät bei IoT Hub.
Die Verwendung von X.509-Zertifikaten als Nachweismechanismus ist eine exzellente Möglichkeit, die Produktion zu skalieren und die Gerätebereitstellung zu vereinfachen. X.509-Zertifikate werden normalerweise in einer Zertifikatvertrauenskette angeordnet. Beginnend mit einem selbst signierten oder vertrauenswürdigen Stammzertifikat signiert jedes Zertifikat in der Kette das nächstniedrigere Zertifikat. Mit diesem Muster wird eine delegierte Vertrauenskette vom Stammzertifikat über jedes Zwischenzertifikat bis zum endgültigen Zertifikat für nachgeschaltete Geräte erstellt, das auf einem Gerät installiert ist.
Voraussetzungen
Cloudressourcen
- Ein aktiver IoT-Hub
- Eine Instanz des IoT Hub Device Provisioning Service (Gerätebereitstellungsdienst) in Azure, die mit Ihrem IoT-Hub verknüpft ist
- Wenn Sie über keine Instanz des Device Provisioning Service verfügen, können Sie die Anweisungen in den Abschnitten Erstellen eines neuen IoT Hub Device Provisioning Service und Verknüpfen des IoT-Hubs und Ihres Gerätebereitstellungsdiensts der Schnellstartanleitung zum IoT Hub Device Provisioning Service befolgen.
- Nachdem Sie den Device Provisioning-Dienst gestartet haben, kopieren Sie den Wert ID-Bereich von der Seite „Übersicht“. Sie können diesen Wert verwenden, wenn Sie IoT Edge-Runtime konfigurieren.
Geräteanforderungen
Ein physisches oder virtuelles Windows-Gerät, das als loT Edge-Gerät dienen soll.
Generieren von Geräteidentitätszertifikaten
Das Geräteidentitätszertifikat ist ein Zertifikat für nachgeschaltete Geräte, das über eine Zertifikatvertrauenskette mit dem obersten X.509-Zertifikat der Zertifizierungsstelle (Certificate Authority, CA) verbunden ist. Für das Geräteidentitätszertifikat muss der allgemeine Name (Common Name, CN) auf die Geräte-ID festgelegt sein, die das Gerät in Ihrem IoT-Hub haben soll.
Geräteidentitätszertifikate werden nur für die Bereitstellung des IoT Edge Geräts und die Authentifizierung des Geräts bei Azure IoT Hub verwendet. Im Gegensatz zu den Zertifizierungsstellenzertifikaten, die das IoT Edge-Gerät Modulen oder nachgeschalteten Geräten zur Überprüfung präsentiert, sind sie keine Signaturzertifikate. Weitere Informationen finden Sie unter Details zur Verwendung von Azure IoT Edge-Zertifikaten.
Nachdem Sie das Geräteidentitätszertifikat erstellt haben, sollten Sie zwei Dateien haben: eine CER- oder PEM-Datei, die den öffentlichen Teil des Zertifikats enthält, und eine CER- oder PEM-Datei mit dem privaten Schlüssel des Zertifikats. Wenn Sie die Gruppenregistrierung in DPS verwenden möchten, benötigen Sie in derselben Zertifikatvertrauenskette außerdem den öffentlichen Teil eines Zwischenzertifikats oder eines Stammzertifikats der Zertifizierungsstelle.
Zum Einrichten der automatischen Bereitstellung mit X.509 benötigen Sie die folgenden Dateien:
- Das Geräteidentitätszertifikat und das zugehörige private Schlüsselzertifikat. Das Geräteidentitätszertifikat wird auf DPS hochgeladen, wenn Sie eine individuelle Registrierung erstellen. Der private Schlüssel wird an die IoT Edge-Runtime übermittelt.
- Ein vollständiges Kettenzertifikat, das mindestens die Geräteidentität und die Zwischenzertifikate enthalten sollte. Das vollständige Kettenzertifikat wird an die IoT Edge-Runtime übermittelt.
- Ein Zwischenzertifikat oder ein Zertifikat der Stammzertifizierungsstelle aus der Zertifikatvertrauenskette. Dieses Zertifikat wird auf DPS hochgeladen, wenn Sie eine Gruppenregistrierung erstellen.
Hinweis
Zurzeit verhindert eine Einschränkung in libiothsm die Verwendung von Zertifikaten, die am oder nach dem 1. Januar 2038 ablaufen.
Verwenden von Testzertifikaten (optional)
Wenn Sie über keine Zertifizierungsstelle zum Erstellen neuer Identitätszertifikate verfügen und dieses Szenario testen möchten, enthält das Git-Repository für Azure IoT Edge Skripts, mit denen Sie Testzertifikate generieren können. Diese Zertifikate sind nur für Entwicklungstests konzipiert und dürfen in der Produktionsumgebung nicht verwendet werden.
Führen Sie zum Erstellen von Testzertifikaten die Schritte in Erstellen von Demozertifikaten zum Testen der Features von IoT Edge-Geräten aus. Führen Sie die beiden erforderlichen Abschnitte zum Einrichten der Skripts für die Zertifikatgenerierung und Erstellen eines Stammzertifikats der Zertifizierungsstelle aus. Führen Sie danach die Schritte zum Erstellen eines Geräteidentitätszertifikats aus. Wenn Sie sie abgeschlossen haben, sollten Sie über die folgende Zertifikatskette und das folgende Schlüsselpaar verfügen:
<WRKDIR>\certs\iot-edge-device-identity-<name>-full-chain.cert.pem
<WRKDIR>\private\iot-edge-device-identity-<name>.key.pem
Sie benötigen diese beiden Zertifikate auf dem IoT Edge-Gerät. Wenn Sie die individuelle Registrierung in DPS verwenden möchten, laden Sie die Datei „.cert.pem“ hoch. Wenn Sie die Gruppenregistrierung in DPS verwenden möchten, benötigen Sie in derselben Zertifikatvertrauenskette zum Hochladen außerdem ein Zwischenzertifikat oder ein Stammzertifikat der Zertifizierungsstelle. Wenn Sie Demozertifikate verwenden, verwenden Sie das Zertifikat für die Gruppenregistrierung, <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem
.
Erstellen einer DPS-Registrierung
Verwenden Sie Ihre generierten Zertifikate und Schlüssel, um in DPS eine Registrierung für ein oder mehrere IoT Edge-Geräte zu erstellen.
Wenn Sie ein einzelnes IoT Edge-Gerät bereitstellen möchten, erstellen Sie eine individuelle Registrierung. Wenn Sie mehrere Geräte bereitstellen müssen, führen Sie die Schritte zum Erstellen einer DPS-Gruppenregistrierung aus.
Wenn Sie eine Registrierung im DPS erstellen, haben Sie die Möglichkeit zum Angeben von Anfänglicher Status von Gerätezwilling. Im Gerätezwilling können Sie Tags zum Gruppieren von Geräten nach jeder beliebigen Metrik, z.B. Region, Umgebung, Speicherort oder Geräte, festlegen, die Sie in Ihrer Projektmappe benötigen. Diese Tags werden zum Erstellen von automatischen Bereitstellungen verwendet.
Weitere Informationen zu Registrierungen im Device Provisioning Service finden Sie unter Verwalten von Geräteregistrierungen.
Erstellen einer individuellen DPS-Registrierung
Individuelle Registrierungen verwenden den öffentlichen Teil des Identitätszertifikats eines Geräts und gleichen es mit dem Zertifikat auf dem Gerät ab.
Tipp
Die Schritte in diesem Artikel gelten für das Azure-Portal. Sie können individuelle Registrierungen aber auch mithilfe der Azure CLI erstellen. Weitere Informationen finden Sie unter az iot dps-Registrierung. Verwenden Sie als Teil des CLI-Befehls das Flag edge-enabled (Edge-fähig), um anzugeben, dass die Registrierung für ein IoT Edge-Gerät gilt.
Navigieren Sie im Azure-Portal zu Ihrer Instanz des IoT Hub Device Provisioning Service.
Klicken Sie in Einstellungen auf Registrierungen verwalten.
Klicken Sie auf Individuelle Registrierung hinzufügen, und führen Sie dann die folgenden Schritte aus, um die Registrierung zu konfigurieren:
Mechanismus: Wählen Sie X.509 aus.
Primäre Zertifikatsdatei .pem oder .cer: Laden Sie die öffentliche Datei aus dem Geräteidentitätszertifikat hoch. Wenn Sie die Skripts zum Generieren eines Testzertifikats verwendet haben, wählen Sie die folgende Datei aus:
<WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem
IoT Hub Device ID: Geben Sie bei Bedarf eine ID für Ihr Gerät an. Sie können mithilfe von Geräte-IDs ein einzelnes Gerät als Ziel für die Modulbereitstellung festlegen. Wenn Sie keine Geräte-ID angeben, wird der allgemeine Name (Common Name, CN) im X.509-Zertifikat verwendet.
IoT Edge-Gerät: Wählen Sie True aus, um zu deklarieren, dass die Registrierung für ein IoT Edge-Gerät gilt.
Wählen Sie die IoT-Hubs aus, denen dieses Gerät zugewiesen werden kann: Wählen Sie den verknüpften IoT-Hub aus, mit dem Sie Ihr Gerät verbinden möchten. Sie können mehrere Hubs auswählen, und das Gerät wird dann je nach gewählter Zuteilungsrichtlinie einem dieser Hubs zugewiesen.
Initial Device Twin State: Fügen Sie einen Tagwert hinzu, der dem Gerätezwilling hinzugefügt werden soll, wenn Sie möchten. Mithilfe von Tags können Sie Gruppen von Geräten als Ziel für die automatische Bereitstellung festlegen. Zum Beispiel:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
Wählen Sie Speichern.
Unter Registrierungen verwalten wird die Registrierungs-ID für die Registrierung angezeigt, die Sie gerade erstellt haben. Notieren Sie sich diese ID, da sie bei der Bereitstellung Ihres Geräts verwendet werden kann.
Nachdem nun eine Registrierung für dieses Gerät vorhanden ist, kann die IoT Edge-Runtime das Gerät während der Installation automatisch bereitstellen.
Installieren von IoT Edge
In diesem Abschnitt bereiten Sie Ihre Windows-VM oder Ihr physisches Gerät für IoT Edge vor. Anschließend installieren Sie IoT Edge.
Azure IoT Edge basiert auf einer OCI-kompatiblen Containerruntime. Moby, eine Moby-basierte Engine, ist im Installationsskript enthalten. Dies bedeutet, dass keine zusätzlichen Schritte zum Installieren der Engine erforderlich sind.
So installieren Sie die IoT Edge-Runtime
Führen Sie PowerShell als Administrator aus.
Verwenden Sie eine AMD64-Sitzung von PowerShell, nicht PowerShell(x86). Wenn Sie nicht sicher sind, welchen Sitzungstyp Sie verwenden, führen Sie den folgenden Befehl aus:
(Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
Führen Sie den Befehl Deploy-IoTEdge aus, der die folgenden Aufgaben ausführt:
- Überprüft, ob Ihr Windows-Computer mit einer unterstützten Version läuft.
- Aktiviert das Containerfeature.
- Lädt die Moby-Engine und die IoT Edge-Runtime herunter.
. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Deploy-IoTEdge
Starten Sie das Gerät neu, wenn Sie dazu aufgefordert werden.
Wenn Sie IoT Edge auf einem Gerät installieren, können Sie zusätzliche Parameter verwenden, um den Prozess folgendermaßen anzupassen:
- Sie können direkten Datenverkehr über einen Proxyserver leiten.
- Legen Sie im Installationsprogramm ein lokales Verzeichnis für die Offlineinstallation fest.
Weitere Informationen zu diesen zusätzlichen Parametern finden Sie unter PowerShell-Skripts für IoT Edge mit Windows-Containern.
Bereitstellen des Geräts mit seiner Cloud-Identität
Konfigurieren Sie Ihr Gerät mit den Informationen, die es zum Herstellen einer Verbindung mit dem Gerätebereitstellungsdienst und IoT Hub verwendet, sobald die Runtime auf Ihrem Gerät installiert ist.
Halten Sie die folgenden Informationen bereit:
- Den DPS-Wert ID-Bereich. Sie können diesen Wert im Azure-Portal von der Übersichtsseite für Ihre DPS-Instanz abrufen.
- Die Kettendatei für das Geräteidentitätszertifikat auf dem Gerät.
- Die Schlüsseldatei für die Geräteidentität auf dem Gerät.
Öffnen Sie ein PowerShell-Fenster im Administratormodus. Bei der Installation von IoT Edge müssen Sie eine AMD64-Sitzung von PowerShell – nicht PowerShell (x86) – verwenden.
Der Befehl Initialize-IoTEdge konfiguriert die IoT Edge-Runtime auf Ihrem Computer. Der Befehl verwendet standardmäßig die manuelle Bereitstellung mit Windows-Containern. Verwenden Sie deshalb das Flag
-DpsX509
für die automatische Bereitstellung per Authentifizierung mit X.509-Zertifikat.Ersetzen Sie die Platzhalterwerte für
scope_id
,identity cert chain path
undidentity key path
durch die entsprechenden Werte aus Ihrer DPS-Instanz und die Dateipfade auf Ihrem Gerät.Fügen Sie Parameter
-RegistrationId paste_registration_id_here
hinzu, wenn Sie die Geräte-ID als etwas anderes als den CN-Namen des Identitätszertifikats festlegen möchten.. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Initialize-IoTEdge -DpsX509 -ScopeId paste_scope_id_here -X509IdentityCertificate paste_identity_cert_chain_path_here -X509IdentityPrivateKey paste_identity_key_path_here
Tipp
In der Konfigurationsdatei werden Ihre Zertifikat- und Schlüsselinformationen als Datei-URIs gespeichert. Weil aber der Befehl „Initialize-IoTEdge“ diesen Formatierungsschritt automatisch verarbeitet, können Sie den absoluten Pfad zu den Zertifikats- und Schlüsseldateien auf Ihrem Gerät bereitstellen.
Bestätigen einer erfolgreichen Installation
Wenn die Runtime erfolgreich gestartet wurde, können Sie zu Ihrem IoT Hub navigieren und mit dem Bereitstellen von IoT Edge-Modulen auf Ihrem Gerät beginnen.
Sie können überprüfen, ob die individuelle Registrierung, die Sie im Gerätebereitstellungsdienst erstellt haben, verwendet wurde. Navigieren Sie im Azure-Portal zu Ihrer Instanz für den Gerätebereitstellungsdienst. Öffnen Sie die Registrierungsdetails für die von Ihnen erstellte individuelle Registrierung. Beachten Sie, dass der Status der Registrierung Zugewiesen lautet und die Geräte-ID aufgeführt ist.
Mit den folgenden Befehlen können Sie auf Ihrem Gerät überprüfen, ob IoT Edge erfolgreich installiert und gestartet wurde.
Überprüfen Sie den Status des IoT Edge-Diensts.
Get-Service iotedge
Untersuchen Sie die Dienstprotokolle.
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
Führen Sie ausgeführte Module auf.
iotedge list
Nächste Schritte
Der Registrierungsprozess des Device Provisioning Service ermöglicht es Ihnen, die Geräte-ID und die Tags von Gerätezwillingen beim Bereitstellen des neuen Geräts festzulegen. Sie können diese Werte verwenden, um einzelne Geräte oder Gruppen von Geräten über die automatische Geräteverwaltung als Ziel festzulegen. Weitere Informationen finden Sie unter Bedarfsgerechtes Bereitstellen und Überwachen von IoT Edge-Modulen mithilfe des Azure-Portals oder Verwenden der Azure CLI.