Erstellen und Bereitstellen eines IoT Edge-Geräts unter Windows mithilfe von 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 End-to-End-Anweisungen zum Registrieren und Bereitstellen eines Windows IoT Edge-Geräts.
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.
Jedes Gerät, das eine Verbindung mit einem IoT-Hub herstellt, verfügt über eine Geräte-ID, die zum Nachverfolgen der Cloud-zu-Gerät- oder Gerät-zu-Cloud-Kommunikation verwendet wird. Sie konfigurieren ein Gerät mit den Verbindungsinformationen, einschließlich des IoT Hub-Hostnamens, der Geräte-ID und der Informationen, die das Gerät zum Authentifizieren bei IoT Hub verwendet.
Die Schritte in diesem Artikel führen Sie durch die sogenannte manuelle Bereitstellung, bei der Sie ein einzelnes Gerät mit dem entsprechenden IoT-Hub verbinden. Bei der manuellen Bereitstellung haben Sie zwei Optionen zum Authentifizieren von IoT Edge-Geräten:
Symmetrische Schlüssel: Wenn Sie in IoT Hub eine neue Geräteidentität erstellen, erstellt der Dienst zwei Schlüssel. Ein Schlüssel befindet sich auf dem Gerät, den es bei der Authentifizierung in IoT Hub vorzeigt.
Diese Authentifizierungsmethode kann schneller eingerichtet werden, ist dafür aber weniger sicher.
selbstsignierte X.509: Sie erstellen zwei X.509-Identitätszertifikate und bewahren diese auf dem Gerät auf. Wenn Sie in IoT Hub eine neue Geräteidentität erstellen, geben Sie Fingerabdrücke aus beiden Zertifikaten an. Wenn sich das Gerät bei IoT Hub authentifiziert, übergibt es ein Zertifikat, und IoT Hub überprüft, ob das Zertifikat mit dem Fingerabdruck übereinstimmt.
Diese Authentifizierungsmethode ist sicherer und wird für Produktionsszenarios empfohlen.
In diesem Artikel wird die Verwendung von X.509-Zertifikaten als Authentifizierungsmethode behandelt. Wenn Sie symmetrische Schlüssel verwenden möchten, lesen Sie Erstellen und Bereitstellen eines IoT Edge-Geräts unter Windows mithilfe von symmetrischen Schlüsseln.
Hinweis
Wenn Sie viele Geräte einrichten müssen und sie nicht einzeln manuell bereitstellen möchten, informieren Sie sich in einem der folgenden Artikel, wie IoT Edge beim IoT Hub Device Provisioning Service (Gerätebereitstellungsdienst) funktioniert:
Voraussetzungen
In diesem Artikel wird beschrieben, wie Sie Ihr IoT Edge-Gerät registrieren und darauf IoT Edge installieren. Bei diesen Aufgaben gibt es unterschiedliche Voraussetzungen und Hilfsprogramme zu deren Erledigung. Stellen Sie sicher, dass alle Voraussetzungen erfüllt sind, bevor Sie fortfahren.
Geräteverwaltungstools
Sie können die Schritte zum Registrieren Ihres Geräts über das Azure-Portal, mithilfe von Visual Studio Code oder über die Azure CLI ausführen. Bei jedem Hilfsprogramm gibt es eigene Voraussetzungen:
Ein IoT-Hub in Ihrem Azure-Abonnement im Tarif „Free“ oder „Standard“.
Geräteanforderungen
Ein Windows-Gerät.
IoT Edge erfordert in Kombination mit Windows-Containern die Windows-Version 1809/Build 17763. Dies ist der neueste Windows Long Term Support-Build. Sehen Sie unbedingt die Liste der unterstützten Systeme mit der Liste der unterstützten SKUs durch.
Generieren von Geräteidentitätszertifikaten
Die manuelle Bereitstellung mit X.509-Zertifikaten erfordert die IoT Edge-Version 1.0.10 oder höher.
Wenn Sie ein IoT Edge-Gerät mit X.509-Zertifikaten bereitstellen, verwenden Sie das sogenannte Geräteidentitätszertifikat. Dieses Zertifikat wird nur für die Bereitstellung eines IoT Edge-Geräts und die Authentifizierung des Geräts bei Azure IoT Hub verwendet. Es handelt sich dabei um ein Blattzertifikat, mit dem keine anderen Zertifikate signiert werden können. Das Geräteidentitätszertifikat hängt nicht mit den Zertifikaten der Zertifizierungsstelle zusammen, die das IoT Edge-Gerät Modulen oder Downstreamgeräten zur Überprüfung präsentiert.
Bei der Authentifizierung mit einem X.509-Zertifikat werden die Informationen zur Authentifizierung der einzelnen Geräte in Form eines Fingerabdrucks bereitgestellt, der den Geräteidentitätszertifikaten entnommen wurde. Diese Fingerabdrücke werden IoT Hub zum Zeitpunkt der Geräteregistrierung bereitgestellt, damit der Dienst das Gerät erkennen kann, wenn es eine Verbindung herstellt.
Weitere Informationen zur Aufgabe der verschiedenen Zertifikate der Zertifizierungsstelle auf IoT Edge-Geräten finden Sie unter Grundlegendes zur Verwendung von Zertifikaten durch Azure IoT Edge.
Für die manuelle Bereitstellung mit X.509 ist Folgendes erforderlich:
Zwei Geräteidentitätszertifikate mit ihren entsprechenden Zertifikaten mit privaten Schlüsseln im CER- oder PEM-Format.
Eine Gruppe von Zertifikat-/Schlüsseldateien wird für die IoT Edge-Runtime bereitgestellt. Wenn Sie Geräteidentitätszertifikate erstellen, legen Sie den allgemeinen Namen (Common Name, CN) des Zertifikats auf die Geräte-ID fest, die das Gerät in Ihrem IoT-Hub haben soll.
Fingerabdrücke von beiden Geräteidentitätszertifikaten.
Die Fingerabdruckwerte bestehen aus 40 Hexadezimalzeichen für SHA-1-Hashes oder 64 Hexadezimalzeichen für SHA-256-Hashes. Beide Fingerabdrücke werden zum Zeitpunkt der Geräteregistrierung für IoT Hub bereitgestellt.
Sollten Sie über keine Zertifikate verfügen, können Sie Demozertifikate zum Testen von IoT Edge-Gerätefeatures erstellen. Gehen Sie wie in dem Artikel beschrieben vor, um Zertifikaterstellungsskripts einzurichten und ein Zertifikat der Stammzertifizierungsstelle sowie zwei IoT Edge-Geräteidentitätszertifikate zu erstellen.
Der Fingerabdruck kann beispielsweise mithilfe des folgenden OpenSSL-Befehls aus einem Zertifikat abgerufen werden:
openssl x509 -in <certificate filename>.pem -text -fingerprint
Registrieren Ihres Geräts
Je nach Präferenz können Sie Ihr Gerät über das Azure-Portal, mithilfe von Visual Studio Code oder über die Azure CLI registrieren.
In Ihrem IoT-Hub im Azure-Portal werden IoT Edge-Geräte separat von IoT-Geräten erstellt und verwaltet, die nicht mit Edge verwendet werden können.
Melden Sie sich beim Azure-Portal an, und navigieren Sie zu Ihrem IoT Hub.
Klicken Sie im linken Bereich auf Geräte, und klicken Sie dann auf Gerät hinzufügen.
Geben Sie auf der Seite Gerät erstellen die folgenden Informationen ein:
- Erstellen Sie eine eindeutige Geräte-ID. Notieren Sie sich diese Geräte-ID, da Sie sie später verwenden werden.
- Aktivieren Sie das Kontrollkästchen IoT Edge-Gerät.
- Wählen Sie als Authentifizierungstyp X.509, selbstsigniert aus.
- Geben Sie die primären und sekundären Identitätszertifikatfingerabdrücke an. Die Fingerabdruckwerte bestehen aus 40 Hexadezimalzeichen für SHA-1-Hashes oder 64 Hexadezimalzeichen für SHA-256-Hashes.
Wählen Sie Speichern.
Nachdem Sie ein Gerät in IoT Hub registriert haben, rufen Sie die Informationen ab, mit der Sie die Installation und Bereitstellung der IoT Edge-Runtime abschließen.
Anzeigen registrierter Geräte und Abrufen von Bereitstellungsinformationen
Geräte, die die X.509-Zertifikatauthentifizierung verwenden, benötigen ihren IoT-Hub-Namen, ihren Gerätenamen und ihre Zertifikatdateien, um die Installation und Bereitstellung der Iot Edge-Runtime abzuschließen.
Die für die Verwendung mit Edge vorgesehenen Geräte, die eine Verbindung mit Ihrem IoT-Hub herstellen, sind auf der Seite Geräte aufgeführt. Sie können die Liste nach Typ desIot Edge-Geräts filtern.
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
Nachdem die Containerengine und die IoT Edge-Runtime auf Ihrem Gerät installiert wurden, sind Sie nun für den nächsten Schritt bereit, nämlich das Einrichten des Geräts mit seinen Cloudidentitäts- und Authentifizierungsinformationen.
Führen Sie PowerShell auf dem IoT Edge-Gerät als Administrator aus.
Verwenden Sie den Befehl Initialize-IoTEdge, um die IoT Edge-Runtime auf Ihrem Computer zu konfigurieren.
. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Initialize-IoTEdge -ManualX509
Wenn Sie das Skript „IoTEdgeSecurityDaemon.ps1“ auf Ihr Gerät heruntergeladen haben, um eine Offlineinstallation durchzuführen oder eine bestimmte Version zu installieren, müssen Sie auf die lokale Kopie des Skripts verweisen.
. <path>/IoTEdgeSecurityDaemon.ps1 Initialize-IoTEdge -ManualX509
Geben Sie bei entsprechender Aufforderung die folgenden Informationen ein:
- IotHubHostName: Hostname des IoT-Hubs, mit dem das Gerät verbunden wird. Beispiel:
{IoT_hub_name}.azure-devices.net
. - DeviceId: Die ID, die Sie beim Registrieren des Geräts angegeben haben.
- X509IdentityCertificate: Absoluter Pfad zu einem Identitätszertifikat auf dem Gerät. Beispiel:
C:\path\identity_certificate.pem
. - X509IdentityPrivateKey: Absoluter Pfad zur privaten Schlüsseldatei für das bereitgestellte Identitätszertifikat. Beispiel:
C:\path\identity_key.pem
.
- IotHubHostName: Hostname des IoT-Hubs, mit dem das Gerät verbunden wird. Beispiel:
Wenn Sie ein Gerät manuell bereitstellen, können Sie zusätzliche Parameter verwenden, um den Prozess folgendermaßen anzupassen:
- Sie können direkten Datenverkehr über einen Proxyserver leiten.
- Sie können ein bestimmtes edgeAgent-Containerimage deklarieren und Anmeldeinformationen bereitstellen, wenn dieses sich in einer privaten Registrierung befindet.
Weitere Informationen zu diesen zusätzlichen Parametern finden Sie unter PowerShell-Skripts für IoT Edge mit Windows-Containern.
Überprüfen der erfolgreichen Konfiguration
Vergewissern Sie sich, dass die Runtime erfolgreich auf Ihrem IoT Edge-Gerät installiert und konfiguriert 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
Offlineinstallation oder Installation einer bestimmten Version (optional)
Die in diesem Abschnitt aufgeführten Schritte sind für Szenarien vorgesehen, die von den Schritten der Standardinstallation nicht abgedeckt werden. Dies kann enthalten:
- Die Offlineinstallation von IoT Edge
- Die Installation einer Release Candidate-Version
- Installation einer anderen als der aktuellsten Version
Während der Installation werden drei Dateien heruntergeladen:
- Ein PowerShell-Skript, das die Installationsanweisungen enthält
- Eine Microsoft Azure IoT Edge-CAB-Datei, die IoT Edge-Sicherheitsdaemon (iotedged), Moby-Container-Engine und Moby-CLI enthält
- Ein Installationsprogramm für das Visual C++ Redistributable Package (VC-Runtime)
Wenn Ihr Gerät während der Installation offline ist oder wenn Sie eine bestimmte Version von IoT Edge installieren möchten, können Sie diese Dateien im Voraus auf das Gerät herunterladen. Wenn Sie die Installation durchführen möchten, verweisen Sie im Installationsskript auf das Verzeichnis, in dem die heruntergeladenen Dateien gespeichert sind. Das Installationsprogramm überprüft dieses Verzeichnis zuerst und lädt dann nur Komponenten herunter, die nicht gefunden werden konnten. Wenn alle Dateien offline verfügbar sind, können Sie die Installation ohne Internetverbindung durchführen.
Die aktuellen IoT Edge-Installationsdateien und die früheren Versionen finden Sie auf der Seite für Azure IoT Edge-Releases.
Suchen Sie die Version, die Sie installieren möchten, und laden Sie die folgenden Dateien aus dem Abschnitt Assets der Versionshinweise auf Ihr IoT-Gerät herunter:
- IoTEdgeSecurityDaemon.ps1
- Microsoft-Azure-IoTEdge-amd64.cab aus dem Releasekanal 1.1.
Es ist wichtig, das PowerShell-Skript für dasselbe Release zu verwenden, zu dem die CAB-Datei gehört, weil die Unterstützung für Features sich in jedem Release ändert.
Wenn die von Ihnen heruntergeladene CAB-Datei ein Suffix der Architektur enthält, benennen Sie die Datei in Microsoft-Azure-IoTEdge.cab um.
Optional können Sie auch ein Installationsprogramm für Visual C++ Redistributable herunterladen. Das PowerShell-Skript verwendet beispielsweise diese Version: vc_redist.x64.exe. Speichern Sie das Installationsprogramm auf Ihrem IoT-Gerät im selben Ordner, in dem sich die IoT Edge-Dateien befinden.
Für eine Installation mit Offlinekomponenten führen Sie eine DOT-Quellentnahme in der lokalen Kopie des PowerShell-Skripts durch.
Führen Sie den Befehl Deploy-IoTEdge mit dem Parameter
-OfflineInstallationPath
aus. Geben Sie den absoluten Pfad zum Dateiverzeichnis an. Beispiel:. path_to_powershell_module_here\IoTEdgeSecurityDaemon.ps1 Deploy-IoTEdge -OfflineInstallationPath path_to_file_directory_here
Der Bereitstellungsbefehl verwendet alle Komponenten, die im angegebenen lokalen Dateiverzeichnis gefunden werden. Wenn die CAB-Datei oder der Visual C++-Installer fehlt, versucht der Befehl, diese Komponenten herunterzuladen.
Deinstallieren von IoT Edge
Wenn Sie IoT Edge von Ihrem Windows-Gerät entfernen möchten, sollten Sie den Befehl Uninstall-IoTEdge in einem PowerShell-Fenster ausführen, das mit Administratorrechten geöffnet wurde. Dieser Befehl entfernt die IoT Edge-Runtime, die vorhandenen Konfigurationen und die Daten der Moby-Engine.
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; `
Uninstall-IoTEdge
Um weitere Informationen zu den Deinstallationsoptionen zu erhalten, verwenden Sie den Befehl Get-Help Uninstall-IoTEdge -full
.
Nächste Schritte
Sie können nun mit dem Artikel zum Bereitstellen von IoT Edge-Modulen fortfahren, um zu erfahren, wie Sie Module auf Ihrem Gerät bereitstellen.