Teilen über


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

Gilt für:Ja-Symbol 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.

IoT Edge-Geräte benötigen Zertifikate für die sichere Kommunikation zwischen der Runtime, den Modulen und etwaigen Downstreamgeräten. Wenn Sie nicht über eine Zertifizierungsstelle verfügen, um die erforderlichen Zertifikate zu erstellen, können Sie mithilfe von Demozertifikaten IoT Edge-Features in Ihrer Testumgebung testen. In diesem Artikel werden die Funktionen der Zertifikatgenerierungsskripts beschrieben, die IoT Edge zu Testzwecken bereitstellt.

Warnung

Diese Zertifikate laufen nach 30 Tagen ab und sollten nicht in Produktionsszenarien verwendet werden.

Sie können Zertifikate auf jedem Computer erstellen und dann auf Ihr IoT Edge Gerät kopieren oder die Zertifikate direkt auf dem IoT Edge-Gerät generieren.

Voraussetzungen

Ein Entwicklungscomputer mit installiertem Git

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.

Zum Erstellen von Demozertifikaten auf einem Windows-Gerät müssen Sie OpenSSL installieren und dann die Generierungsskripts klonen und für die lokale Ausführung in PowerShell einrichten.

OpenSSL installieren

Installieren Sie OpenSSL für Windows auf dem Computer, den Sie zum Generieren der Zertifikate verwenden. Wenn Sie OpenSSL auf Ihrem Windows-Gerät bereits installiert haben, stellen Sie sicher, dass „openssl.exe“ in Ihrer PATH-Umgebungsvariablen zur Verfügung steht.

Es gibt mehrere Möglichkeiten zum Installieren von OpenSSL, einschließlich der folgenden Optionen:

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

  • Empfohlen: Laden Sie den OpenSSL-Quellcode herunter, und erstellen Sie die Binärdateien entweder selbst oder mithilfe von vcpkg auf Ihrem Computer. In den nachfolgend aufgeführten Anweisungen wird in benutzerfreundlichen Schritten „vcpkg“ zum Herunterladen des Quellcodes sowie zum Kompilieren und Installieren von OpenSSL auf Ihrem Windows-Computer verwendet.

    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 ein PowerShell-Fenster 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, in dem Sie arbeiten möchten, und kopieren Sie die Zertifikatskripts hinein. 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-Datei heruntergeladen haben, lautet der Ordnername iotedge-master. Der Rest des Pfads ist identisch.

  4. Aktivieren Sie PowerShell zum Ausführen der Skripts.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  5. Fügen Sie die Funktionen, die von den Skripts verwendet werden, in den globalen Namespace von PowerShell ein.

    . .\ca-certs.ps1
    

    Im PowerShell-Fenster wird eine Warnung angezeigt, das die von diesem Skript generierten Zertifikate ausschließlich für Testzwecke vorgesehen sind 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 eines Stammzertifizierungsstellen-Zertifikats

Führen Sie dieses Skript aus, um eine Root-CA zu generieren, die in jedem Schritt dieses Artikels benötigt wird.

Das Stammzertifizierungsstellen-Zertifikat wird verwendet, um alle anderen Demozertifikate zu erstellen, die für das Testen eines IoT Edge-Szenarios benötigt werden. Sie können dasselbe Zertifikat der Stammzertifizierungsstelle weiterhin verwenden, um Demozertifikate für mehrere IoT-Edge- oder Downstream-Geräte zu erstellen.

Wenn Sie bereits ein Root-CA-Zertifikat in Ihrem Arbeitsordner haben, erstellen Sie kein neues. Das neue Root-CA-Zertifikat überschreibt das alte, und alle mit dem alten erstellten Downstream-Zertifikate werden nicht mehr funktionieren. Wenn Sie mehrere Root-CA-Zertifikate benötigen, achten Sie darauf, sie in getrennten Ordnern zu verwalten.

  1. Navigieren Sie zu dem Arbeitsverzeichnis wrkdir, in dem Sie die Skripts für die Zertifikatgenerierungsskripts gespeichert haben.

  2. Erstellen Sie das Zertifikat der Stammzertifizierungsstelle und lassen Sie es ein Zwischenzertifikat signieren. Die Zertifikate werden alle im Arbeitsverzeichnis gespeichert.

    New-CACertsCertChain rsa
    

    Dieser Skriptbefehl erstellt mehrere Zertifikat- und Schlüsseldateien. Wenn in Artikeln jedoch das Stammzertifizierungsstellen-Zertifikat gefordert wird, verwenden Sie die folgende Datei:

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

Dieses Zertifikat ist erforderlich, bevor Sie weitere Zertifikate für Ihre IoT Edge-Geräte und Downstreamgeräte erstellen können, 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. Navigieren Sie zu dem Arbeitsverzeichnis wrkdir, in dem sich die Skripts für die Zertifikatgenerierung und das Root-CA-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 an diesen Befehl übergeben, ist die Geräte-ID für das IoT Edge-Gerät in IoT Hub.

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

    Typ Datei BESCHREIBUNG
    Geräteidentitätszertifikat certs\iot-edge-device-identity-<device-id>.cert.pem Unterzeichnet mit dem zuvor generierten Zwischenzertifikat. Enthält nur das Identitätszertifikat. Geben Sie in der Konfigurationsdatei die individuelle DPS-Registrierung oder IoT Hub-Bereitstellung an.
    Vollständiges Kettenzertifikat 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, welche Informationen der DPS für die Bereitstellung von Gruppenregistrierungen zur Verfügung gestellt werden sollten.
    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.

Gerätezertifikate für Zertifizierungsstellen erstellen

Diese Zertifikate sind für Gatewayszenarien erforderlich, da das CA-Zertifikat des Geräts die Identität des IoT Edge-Geräts gegenüber nachgeschalteten Geräten authentisiert. Sie können diesen Abschnitt überspringen, wenn Sie keine nachgelagerten Geräte mit IoT Edge verbinden.

Das Gerätezertifizierungszertifikat ist auch für das Erstellen von Zertifikaten für Module verantwortlich, die auf dem Gerät ausgeführt werden, aber die IoT Edge-Laufzeit kann temporäres Zertifikat erstellen, wenn die Gerätezertifizierungsstelle nicht konfiguriert ist. Zertifikate von Zertifizierungsstellen für Geräte werden im Abschnitt Zertifikat der config.yaml Datei auf dem IoT Edge-Gerät abgelegt. 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 Zertifikatgenerierung und das Root-CA-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 Zertifizierungsstellenzertifikat an. Der an den Befehl New-CACertsEdgeDevice übergebene Name sollte mit dem Hostnamenparameter in der Konfigurationsdatei oder der ID des Geräts in IoT Hub nicht identisch sein.

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. Mit diesem Befehl werden mehrere Zertifikat- und Schlüsseldateien erstellt. Das folgende Paar aus Zertifikat und Schlüssel muss auf ein IoT Edge-Gerät kopiert und in der Konfigurationsdatei darauf verwiesen werden:

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

Erstellen von Zertifikaten für nachgeschaltete Geräte

Diese Zertifikate sind erforderlich, um ein nachgelagertes IoT-Gerät für ein Gateway-Szenario einzurichten, und Sie möchten die X.509-Authentifizierung mit dem IoT-Hub oder DPS verwenden. Falls Sie die Authentifizierung mit symmetrischem Schlüssel verwenden möchten, müssen Sie keine Zertifikate für das Downstream-Gerät erstellen und können diesen Abschnitt überspringen.

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 Wurzel-CA-Zertifikat ausgestellt wurde oder durch eines seiner Zwischenzertifikate, kann sich authentifizieren, 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 und übergeben ihn an IoT Hub. 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 Zertifikatgenerierung und das Root-CA-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. 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:

    openssl x509 -in certs\iot-device-<device name>-primary.cert.pem -text -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. Verwenden Sie das gleiche Stamm-CA-Zertifikat, um Gerätezertifikate zu erstellen, die auf Ihrem 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 Stammzertifikatsdatei aus Ihrem Arbeitsverzeichnis (certs\azure-iot-test-only.root.ca.cert.pem) in Ihren IoT-Hub hoch.

  2. Wenn die automatische Überprüfung nicht ausgewählt ist, verwenden Sie den im Azure-Portal bereitgestellten Code, um zu überprüfen, dass Sie das Stammzertifizierungsstellen-Zertifikat besitzen.

    New-CACertsVerificationCert "<verification code>"
    
  3. Erstellen Sie eine Zertifikatskette für Ihr nachgeschaltetes 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