Freigeben über


Erstellen von Demozertifikaten zum Testen der Features von IoT Edge-Geräten

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.

IoT Edge-Geräte benötigen Zertifikate für die sichere Kommunikation zwischen der Laufzeit, den Modulen und allen nachgeschalteten Geräten. Wenn Sie nicht über eine Zertifizierungsstelle zum Erstellen der erforderlichen Zertifikate verfügen, verwenden Sie Demozertifikate, um IoT Edge-Features in Ihrer Testumgebung auszuprobieren. In diesem Artikel werden die Zertifikatgenerierungsskripts erläutert, die IoT Edge zu Testzwecken bereitstellt.

Warnung

Diese Zertifikate laufen in 30 Tagen ab, und Sie sollten sie in keinem Produktionsszenario verwenden.

Erstellen Sie Zertifikate auf einem beliebigen Computer, und kopieren Sie sie dann auf Ihr IoT Edge-Gerät, oder generieren Sie die Zertifikate direkt auf dem IoT Edge-Gerät.

Voraussetzungen

Verwenden Sie einen Entwicklungscomputer, auf dem Git installiert ist.

Herunterladen von Testzertifikatskripts und Einrichten des Arbeitsverzeichniss

Das IoT Edge-Repository auf GitHub enthält Skripts zur Zertifikatgenerierung, die Sie zum Erstellen von Demozertifikaten verwenden können. Dieser Abschnitt enthält Anweisungen zum Vorbereiten der Skripts, damit diese unter Windows oder Linux auf Ihrem Computer ausgeführt werden können.

Um Demozertifikate auf einem Windows-Gerät zu erstellen, installieren Sie OpenSSL, klonen Sie dann die Generierungsskripts, und richten Sie sie so ein, dass sie lokal in PowerShell ausgeführt werden.

OpenSSL installieren

Installieren Sie OpenSSL für Windows auf dem Gerät, das Sie zum Generieren der Zertifikate verwenden. Wenn OpenSSL bereits installiert ist, stellen Sie sicher, dass openssl.exe in Ihrer PATH-Umgebungsvariable verfügbar ist.

Sie können OpenSSL auf unterschiedliche Weise installieren:

  • Einfacher: Laden Sie beliebige Binärdateien von OpenSSL-Drittanbietern herunter, z. B. von OpenSSL auf SourceForge, und installieren Sie sie. Fügen Sie „openssl.exe“ den vollständigen Pfad zu Ihrer PATH-Umgebungsvariablen hinzu.

  • Empfohlen: Laden Sie den OpenSSL-Quellcode herunter, und erstellen Sie die Binärdateien auf Ihrem Gerät, oder verwenden Sie vcpkg. Die folgenden Anweisungen verwenden vcpkg zum Herunterladen von Quellcode, Kompilieren und Installieren von OpenSSL auf Ihrem Windows-Gerät.

    1. Navigieren Sie zu einem Verzeichnis, in dem Sie „vcpkg“ installieren möchten. Folgen Sie den Anweisungen zum Herunterladen und Installieren von vcpkg.

    2. Führen Sie nach der Installation von vcpkg über eine PowerShell-Eingabeaufforderung den folgenden Befehl für die Installation des OpenSSL-Pakets für Windows x64 aus. Diese Installation dauert in der Regel 5 Minuten.

      .\vcpkg install openssl:x64-windows
      
    3. Fügen Sie <vcpkg path>\installed\x64-windows\tools\openssl Ihrer PATH-Umgebungsvariablen hinzu, damit die Datei „openssl.exe“ aufgerufen werden kann.

Vorbereiten von Skripts in PowerShell

Das Azure IoT Edge-Git-Repository enthält Skripts, mit denen Sie Testzertifikate erstellen können. In diesem Abschnitt klonen Sie das IoT Edge-Repository und führen die Skripts aus.

  1. Öffnen Sie PowerShell im Administratormodus.

  2. Klonen Sie das IoT Edge-Git-Repository, das Skripts zum Generieren von Demozertifikaten enthält. Verwenden Sie den Befehl git clone, oder laden Sie die ZIP-Datei herunter.

    git clone https://github.com/Azure/iotedge.git
    
  3. Erstellen Sie ein Verzeichnis, und kopieren Sie dort die Zertifikatskripts. Alle Zertifikat- und Schlüsseldateien werden in diesem Verzeichnis erstellt.

    mkdir wrkdir
    cd .\wrkdir\
    cp ..\iotedge\tools\CACertificates\*.cnf .
    cp ..\iotedge\tools\CACertificates\ca-certs.ps1 .
    

    Wenn Sie das Repository als ZIP heruntergeladen haben, lautet iotedge-master der Ordnername und der rest des Pfads identisch.

  4. Legen Sie die PowerShell-Ausführungsrichtlinie fest, um die Skripts auszuführen.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  5. Importieren Sie die von den Skripts verwendeten Funktionen in den globalen Namespace von PowerShell.

    . .\ca-certs.ps1
    

    Im PowerShell-Fenster wird eine Warnung angezeigt, dass die von diesem Skript generierten Zertifikate nur zu Testzwecken verwendet werden und nicht in Produktionsszenarien verwendet werden sollten.

  6. Überprüfen Sie, ob OpenSSL richtig installiert wurde und keine Namenskonflikte mit vorhandenen Zertifikaten entstehen. Wenn Probleme auftreten, sollte die Skriptausgabe Informationen darüber enthalten, wie diese auf Ihrem System behoben werden können.

    Test-CACertsPrerequisites
    

Erstellen des Stammzertifizierungsstellen-Zertifikats

Führen Sie dieses Skript aus, um ein Root-CA-Zertifikat zu generieren. Sie benötigen dieses Zertifikat für jeden Schritt in diesem Artikel.

Verwenden Sie das Stammzertifikat der Zertifizierungsstelle, um andere Demozertifikate zur Prüfung eines IoT-Edge-Szenarios zu erstellen. Sie können dasselbe Stamm-CA-Zertifikat verwenden, um Demozertifikate für mehrere IoT Edge- oder Downstream-Geräte zu erstellen.

Wenn Sie bereits über ein Zertifikat der Stammzertifizierungsstelle in Ihrem Arbeitsordner verfügen, erstellen Sie kein neues Zertifikat. Durch das Erstellen eines neuen Stammzertifizierungsstellenzertifikats wird das alte Zertifikat überschrieben, und alle nachgelagerten Zertifikate, die aus dem alten Zertifikat erstellt wurden, funktionieren nicht mehr. Wenn Sie mehrere Stamm-CA-Zertifikate benötigen, organisieren Sie sie in separaten Ordnern.

  1. Wechseln Sie zum Arbeitsverzeichnis, in wrkdir dem Sie die Skripts für die Zertifikatgenerierung ablegen.

  2. Erstellen Sie das Stammzertifikat und signieren Sie ein Zwischenzertifikat. Die Zertifikate werden in Ihrem Arbeitsverzeichnis abgelegt.

    New-CACertsCertChain rsa
    

    Dieses Skript erstellt mehrere Zertifikat- und Schlüsseldateien. Wenn Artikel das Zertifikat der Stammzertifizierungsstelle anfordern, verwenden Sie diese Datei:

    certs\azure-iot-test-only.root.ca.cert.pem

Sie benötigen dieses Zertifikat, bevor Sie weitere Zertifikate für Ihre IoT Edge-Geräte und downstream-Geräte erstellen, wie in den nächsten Abschnitten beschrieben.

Erstellen eines Identitätszertifikats für das IoT Edge-Gerät

Geräteidentitätszertifikate werden zum Bereitstellen von IoT Edge-Geräten verwendet, wenn Sie X.509-Zertifikatauthentifizierung wählen. Wenn Sie symmetrische Schlüssel zum Authentifizieren für IoT Hub oder DPS verwenden, sind diese Zertifikate nicht erforderlich, und Sie können diesen Abschnitt überspringen.

Diese Zertifikate funktionieren unabhängig davon, ob Sie manuelle Bereitstellung oder automatische Bereitstellung über den Azure IoT Hub Device Provisioning Service (DPS) verwenden.

Geräteidentitätszertifikate werden auf dem IoT Edge-Gerät im Abschnitt Bereitstellung der Konfigurationsdatei gespeichert.

  1. Wechseln Sie zum Arbeitsverzeichnis „wrkdir“, in dem sich die Skripts für die Zertifikatgenerierung und das Stammzertifizierungsstellen-Zertifikat befinden.

  2. Erstellen Sie mit dem folgenden Befehl das IoT Edge-Geräteidentitätszertifikat und den privaten Schlüssel.

    New-CACertsEdgeDeviceIdentity "<device-id>"
    

    Der Name, den Sie für diesen Befehl eingeben, ist die Geräte-ID für das IoT Edge-Gerät im IoT Hub.

  3. Der Befehl für eine neue Geräteidentität erstellt mehrere Zertifikat- und Schlüsseldateien:

    type Datei Beschreibung
    Geräteidentitätszertifikat auswählen certs\iot-edge-device-identity-<device-id>.cert.pem Signiert durch das Zwischenzertifikat, das zuvor generiert wurde. Enthält nur das Identitätszertifikat. Geben Sie in der Konfigurationsdatei für die einzelne DPS-Registrierung oder IoT Hub-Bereitstellung an.
    Hinzufügen von Kettenzertifikaten certs\iot-edge-device-identity-<device-id>-full-chain.cert.pem Enthält die vollständige Zertifikatkette einschließlich des Zwischenzertifikats. Geben Sie in der Konfigurationsdatei für IoT Edge an DPS für die Bereitstellung der Gruppenregistrierung an.
    Privater Schlüssel private\iot-edge-device-identity-<device-id>.key.pem Privater Schlüssel, der dem Geräteidentitätszertifikat zugeordnet ist. Sollte in der Konfigurationsdatei angegeben werden, solange Sie eine Art Zertifikatauthentifizierung (Fingerabdruck oder ZS) für DPS oder IoT Hub verwenden.

Erstellen von Edgezertifizierungsstellenzertifikaten

Sie benötigen diese Zertifikate für Gatewayszenarien, da das Edge-Zertifizierungsstellenzertifikat es dem IoT Edge-Gerät ermöglicht, seine Identität gegenüber den nachgeschalteten Geräten zu verifizieren. Überspringen Sie diesen Abschnitt, wenn Sie keine nachgeschalteten Geräte mit IoT Edge verbinden.

Das Edge-Zertifizierungsstellenzertifikat erstellt auch Zertifikate für Module, die auf dem Gerät ausgeführt werden, aber die IoT Edge-Laufzeit kann temporäre Zertifikate erstellen, wenn die Edge-Zertifizierungsstelle nicht eingerichtet ist. Legen Sie Edge-Zertifizierungsstellenzertifikate auf dem IoT Edge-Gerät im Abschnitt Edge-Zertifizierungsstelle der config.toml-Datei ab. Weitere Informationen finden Sie unter Grundlegendes zur Verwendung von Zertifikaten durch Azure IoT Edge.

  1. Navigieren Sie zu dem Arbeitsverzeichnis wrkdir, in dem sich die Skripts für die Zertifikatgenerierungsskripts und das Stammzertifizierungsstellen-Zertifikat befinden.

  2. Erstellen Sie mit dem folgenden Befehl das IoT Edge-Zertifizierungsstellenzertifikat und den privaten Schlüssel. Geben Sie einen Namen für das CA-Zertifikat ein. Verwenden Sie nicht denselben Namen wie der Hostnamenparameter in der Konfigurationsdatei oder die Geräte-ID im IoT Hub für den Befehl New-CACertsEdgeDevice .

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. Mit diesem Befehl werden mehrere Zertifikat- und Schlüsseldateien erstellt. Kopieren Sie das folgende Zertifikat- und Schlüsselpaar auf das IoT Edge-Gerät, und verweisen Sie in der Konfigurationsdatei darauf:

    • certs\iot-edge-device-<CA cert name>-full-chain.cert.pem
    • private\iot-edge-device-<CA cert name>.key.pem

Erstellen von Zertifikaten für nachgeschaltete Geräte

Diese Zertifikate sind für das Einrichten eines nachgelagerten IoT-Geräts für ein Gateway-Szenario erforderlich und möchten die X.509-Authentifizierung mit IoT Hub oder DPS verwenden. Falls Sie die Authentifizierung mit symmetrischem Schlüssel verwenden möchten, müssen Sie keine zusätzlichen Zertifikate für das Downstream-Gerät erstellen.

Es gibt zwei Möglichkeiten, ein IoT-Gerät mit X.509-Zertifikaten zu authentifizieren: mit selbst signierten Zertifikaten oder mit von einer Zertifizierungsstelle signierten Zertifikaten.

  • Für die Authentifizierung mit selbstsignierten X.509-Zertifikaten, auch als Fingerabdruck-Authentifizierung bezeichnet, müssen Sie neue Zertifikate erstellen und auf Ihrem IoT-Gerät speichern. Diese Zertifikate verfügen über einen Fingerabdruck, den Sie für die Authentifizierung an IoT Hub übergeben.
  • Für die Authentifizierung mit X.509-Zertifikaten, die von einer Zertifizierungsstelle (ZS) signiert wurden, muss in IoT Hub oder DPS ein Zertifikat einer Stammzertifizierungsstelle registriert sein, mit dem Sie die Zertifikate für Ihre IoT-Geräte signieren. Jedes Gerät mit einem Zertifikat, das vom Stammzertifikat der ZS ausgestellt wurde, oder eines seiner Zwischenzertifikate kann authentifiziert werden, solange die vollständige Kette vom Gerät präsentiert wird.

Die Zertifikatgenerierungsskripts können dabei helfen, Demozertifikate zu erstellen, um diese Authentifizierungsszenarien zu testen.

Selbstsignierte Zertifikate

Wenn Sie ein IoT-Gerät mit selbst signierten Zertifikaten authentifizieren, müssen Sie Gerätezertifikate basierend auf dem Stammzertifizierungsstellen-Zertifikat für Ihre Lösung erstellen. Anschließend rufen Sie einen hexadezimalen „Fingerabdruck“ aus den Zertifikaten ab, der gegenüber IoT Hub bereitgestellt wird. Das IoT-Gerät benötigt außerdem eine Kopie seiner Gerätezertifikate, damit die Authentifizierung bei IoT Hub erfolgen kann.

  1. Navigieren Sie zu dem Arbeitsverzeichnis wrkdir, in dem sich die Skripts für die Zertifikatgenerierungsskripts und das Stammzertifizierungsstellen-Zertifikat befinden.

  2. Erstellen Sie zwei Zertifikate (primär und sekundär) für das nachgeschaltete Gerät. Eine einfache Namenskonvention ist das Erstellen der Zertifikate mit dem Namen des IoT-Geräts und dann der primären oder sekundären Bezeichnung. Zum Beispiel:

    New-CACertsDevice "<device ID>-primary"
    New-CACertsDevice "<device ID>-secondary"
    

    Mit diesem Skriptbefehl werden mehrere Zertifikat- und Schlüsseldateien erstellt. Die folgenden Zertifikat-Schlüssel-Paare müssen auf das Downstream-IoT-Gerät kopiert und in den Anwendungen referenziert werden, die eine Verbindung mit IoT Hub herstellen:

    • certs\iot-device-<device ID>-primary-full-chain.cert.pem
    • certs\iot-device-<device ID>-secondary-full-chain.cert.pem
    • certs\iot-device-<device ID>-primary.cert.pem
    • certs\iot-device-<device ID>-secondary.cert.pem
    • certs\iot-device-<device ID>-primary.cert.pfx
    • certs\iot-device-<device ID>-secondary.cert.pfx
    • private\iot-device-<device ID>-primary.key.pem
    • private\iot-device-<device ID>-secondary.key.pem
  3. Rufen Sie den SHA1-Fingerabdruck (im IoT Hub-Kontext auch als „Fingerabdruck“ bezeichnet) aus jedem Zertifikat ab. Der Fingerabdruck ist eine hexadezimale Zeichenfolge mit 40 Zeichen. Verwenden Sie den folgenden OpenSSL-Befehl, um das Zertifikat anzuzeigen und den Fingerabdruck zu suchen:

    Write-Host (Get-Pfxcertificate -FilePath certs\iot-device-<device name>-primary.cert.pem).Thumbprint
    

    Führen Sie diesen Befehl zweimal aus – einmal für das primäre Zertifikat und einmal für das sekundäre Zertifikat. Sie geben Fingerabdrücke für beide Zertifikate an, wenn Sie ein neues IoT-Gerät mithilfe von selbst signierten X.509-Zertifikaten registrieren.

Von einer Zertifizierungsstelle signierte Zertifikate

Wenn Sie ein IoT-Gerät mit von einer Zertifizierungsstelle signierten Zertifikaten authentifizieren, müssen Sie das Stammzertifizierungsstellen-Zertifikat für Ihre Lösung in IoT Hub hochladen. Schließlich verwenden Sie das gleiche Stamm-ZS-Zertifikat zum Erstellen von Gerätezertifikaten, die auf dem IoT-Gerät abgelegt werden, damit es sich bei IoT Hub authentifizieren kann.

Die Zertifikate in diesem Abschnitt sind für die Schritte in der Tutorialreihe „IoT Hub X.509-Zertifikate“ vorgesehen. Informationen zur Einführung dieser Reihe finden Sie unter Grundlegendes zur Kryptografie mit öffentlichen Schlüsseln und zur X.509 Public Key-Infrastruktur.

  1. Laden Sie die Stammzertifizierungsstellen-Zertifikatsdatei aus Ihrem Arbeitsverzeichnis (certs\azure-iot-test-only.root.ca.cert.pem) auf Ihren IoT-Hub hoch.

  2. Verwenden Sie den im Azure-Portal bereitgestellten Code, um zu verifizieren, dass Sie das Stamm-ZS-Zertifikat besitzen.

    New-CACertsVerificationCert "<verification code>"
    
  3. Erstellen Sie eine Vertrauenskette für das nachgeschaltete Gerät. Verwenden Sie dieselbe Geräte-ID, mit der das Gerät bei IoT Hub registriert ist.

    New-CACertsDevice "<device id>"
    

    Mit diesem Skriptbefehl werden mehrere Zertifikat- und Schlüsseldateien erstellt. Die folgenden Zertifikat-Schlüssel-Paare müssen auf das Downstream-IoT-Gerät kopiert und in den Anwendungen referenziert werden, die eine Verbindung mit IoT Hub herstellen:

    • certs\iot-device-<device id>.cert.pem
    • certs\iot-device-<device id>.cert.pfx
    • certs\iot-device-<device id>-full-chain.cert.pem
    • private\iot-device-<device id>.key.pem