Programmgesteuertes Erstellen einer Device Provisioning Service-Registrierungsgruppe für den X.509-Zertifikatnachweis
In diesem Artikel wird erläutert, wie Sie programmgesteuert eine Registrierungsgruppe in Azure IoT Hub Device Provisioning Service (DPS) erstellen, die X.509-Zertifikate einer Zwischen- oder Stammzertifizierungsstelle verwendet. Die Registrierungsgruppe wird mithilfe des Azure IoT-Dienst-SDK und einer Beispielanwendung erstellt. Eine Registrierungsgruppe steuert den Zugriff auf den Bereitstellungsdienst für Geräte, die das gleiche allgemeine Signaturzertifikat in ihrer Zertifikatkette verwenden. Weitere Informationen finden Sie unter Verwenden von X.509-Zertifikaten mit DPS. Weitere Informationen zur Verwendung der auf dem X.509-Zertifikat basierenden Public Key-Infrastruktur (PKI) mit Azure IoT Hub und dem Device Provisioning-Dienst finden Sie unter Geräteauthentifizierung mit X.509-Zertifikaten.
Voraussetzungen
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Führen Sie die Schritte im Artikel Einrichten des IoT Hub Device Provisioning Service im Azure-Portal aus.
Installieren Sie das .NET 6.0-SDK oder höher auf Ihrem Windows-Computer. Sie können den folgenden Befehl ausführen, um Ihre Version zu überprüfen:
dotnet --info
- Installieren Sie Node.js v4.0 oder höher auf Ihrem Computer.
Java SE Development Kit 8 In diesem Artikel wird das Azure IoT SDK für Javaverwendet, das sowohl unter Windows als auch unter Linux funktioniert. In diesem Artikel wird Windows verwendet.
- Installieren Sie die aktuelle Version von Git. Stellen Sie sicher, dass Git den Umgebungsvariablen hinzugefügt wurde, auf die das Befehlsfenster Zugriff hat. Unter den Git-Clienttools von Software Freedom Conservancy finden Sie die neueste Version der zu installierenden
git
-Tools. Hierzu zählt auch die Befehlszeilen-App Git Bash, über die Sie mit Ihrem lokalen Git-Repository interagieren können.
Hinweis
Die Schritte in diesem Artikel funktionieren für Windows- und Linux-Computer. In diesem Artikel wird allerdings nur ein Windows-Entwicklungscomputer verwendet.
Erstellen von Testzertifikaten
Registrierungsgruppen, die den X.509-Zertifikatnachweis verwenden, können so konfiguriert werden, dass ein Zertifikat der Stammzertifizierungsstelle oder ein Zwischenzertifikat verwendet wird. Der üblichere Fall ist das Konfigurieren der Registrierungsgruppe mit einem Zwischenzertifikat. Die Verwendung eines Zwischenzertifikats bietet mehr Flexibilität, da mehrere Zwischenzertifikate von ein und demselben Stammzertifikat erstellt oder widerrufen werden können.
In diesem Artikel benötigen Sie entweder eine Zertifikatdatei der Stammzertifizierungsstelle, eine Zertifikatdatei der Zwischenzertifizierungsstelle- oder beide Zertifikatdateien im PEM- oder CER-Format. Eine Datei enthält den öffentlichen Teil des X.509-Zertifikats der Stammzertifizierungsstelle, und die andere Datei enthält den öffentlichen Teil des X.509-Zertifikats der Zwischenzertifizierungsstelle.
Wenn Sie bereits eine Datei der Stammzertifizierungsstelle und/oder eine Datei der Zwischenzertifizierungsstelle haben, können Sie den Vorgang mit Hinzufügen und Überprüfen Ihres Zertifikats der Stamm- oder Zwischenzertifizierungsstelle fortsetzen.
Wenn Sie keine Datei der Stammzertifizierungsstelle und/oder Datei der Zwischenzertifizierungsstelle haben, führen Sie die Schritte in Erstellen einer X.509-Zertifikatkette aus, um sie zu erstellen. Nach Abschluss der Schritte in Erstellen des Zertifikats der Zwischenzertifizierungsstelle können Sie den Vorgang beenden, da Sie keine Gerätezertifikate benötigen, um die Schritte in diesem Artikel abzuschließen. Wenn Sie fertig sind, haben Sie zwei X.509-Zertifikatdateien: ./certs/azure-iot-test-only.root.ca.cert.pem and ./certs/azure-iot-test-only.intermediate.cert.pem.
Hinzufügen und Überprüfen Ihres Zertifikats der Stamm- oder Zwischenzertifizierungsstelle
Geräte, die über eine Registrierungsgruppe mithilfe von X.509-Zertifikaten bereitgestellt werden, stellen die gesamte Zertifikatkette dar, wenn sie sich mit DPS authentifizieren. Damit DPS die Zertifikatkette überprüfen kann, muss das in einer Registrierungsgruppe konfigurierte Stamm- oder Zwischenzertifikat entweder ein überprüftes Zertifikat sein, oder ihm muss ein überprüftes Zertifikat in der Zertifikatkette folgen, die ein Gerät bei der Authentifizierung mit dem Dienst vorlegt.
In diesem Artikel wird davon ausgegangen, dass Sie sowohl ein Zertifikat der Stammzertifizierungsstelle als auch ein Zertifikat der Zwischenzertifizierungsstelle haben, das von der Stammzertifizierungsstelle signiert wurde:
Wenn Sie planen, die Registrierungsgruppe mit dem Zertifikat der Stammzertifizierungsstelle zu erstellen, müssen Sie dieses Zertifikat hochladen und überprüfen.
Wenn Sie planen, die Registrierungsgruppe mit dem Zertifikat der Zwischenzertifizierungsstelle zu erstellen, können Sie entweder das Zertifikat der Stammzertifizierungsstelle oder das Zertifikat der Zwischenzertifizierungsstelle hochladen und überprüfen. (Wenn die Zertifikatkette mehrere Zertifikate der Zwischenzertifizierungsstelle enthält, könnten Sie alternativ ein beliebiges Zwischenzertifikat hochladen und überprüfen, das sich zwischen dem Zertifikat der Stammzertifizierungsstelle und dem Zwischenzertifikat befindet, mit dem Sie die Registrierungsgruppe erstellen.)
So können Sie Ihr Zertifikat der Stamm- oder Zwischenzertifizierungsstelle dem Device Provisioning Service hinzufügen und überprüfen:
Melden Sie sich beim Azure-Portal an.
Wählen Sie im Menü auf der linken Seite oder auf der Portalseite die Option Alle Ressourcen aus.
Wählen Sie Ihre Device Provisioning Service-Instanz aus.
Wählen Sie im Menü Einstellungen die Option Zertifikate aus.
Wählen Sie im oberen Menü die Option + Hinzufügen: aus.
Geben Sie einen Namen für Ihr Zertifikat der Stamm- oder Zwischenzertifizierungsstelle ein, und laden Sie die PEM- oder CER-Datei hoch.
Wählen Sie Beim Hochladen den Zertifikatstatus auf "verifiziert" festlegen aus.
Wählen Sie Speichern.
Abrufen der Verbindungszeichenfolge für Ihren Bereitstellungsdienst
Für das Beispiel in diesem Artikel benötigen Sie die Verbindungszeichenfolge für Ihren Bereitstellungsdienst. Führen Sie die folgenden Schritte aus, um sie abzurufen.
Melden Sie sich beim Azure-Portal an.
Wählen Sie im Menü auf der linken Seite oder auf der Portalseite die Option Alle Ressourcen aus.
Wählen Sie Ihre Device Provisioning Service-Instanz aus.
Wählen Sie im Menü Einstellungen die Option Richtlinien für gemeinsamen Zugriff aus.
Wählen Sie die Zugriffsrichtlinie aus, die Sie verwenden möchten.
Kopieren Sie im Bereich Zugriffsrichtlinie die Primärschlüssel-Verbindungszeichenfolge, und speichern Sie sie.
Erstellen des Registrierungsgruppenbeispiels
Dieser Abschnitt zeigt, wie Sie eine .NET Core-Konsolenanwendung erstellen, die Ihrem Bereitstellungsdienst eine Registrierungsgruppe hinzufügt.
Öffnen Sie eine Windows-Eingabeaufforderung, und navigieren Sie zu dem Ordner, in dem Sie Ihre App erstellen möchten.
Führen Sie den folgenden Befehl zum Erstellen eines Konsolenprojekts aus:
dotnet new console --framework net6.0 --use-program-main
Führen Sie den folgenden Befehl aus, um einen Verweis auf das DPS-Dienst-SDK hinzuzufügen:
dotnet add package Microsoft.Azure.Devices.Provisioning.Service
In diesem Schritt wird das NuGet-Paket „Azure IoT-DPS-Dienstclient“ heruntergeladen und installiert sowie ein Verweis auf das Paket und dessen Abhängigkeiten hinzugefügt. Dieses Paket enthält die Binärdateien für das .NET-Dienst-SDK.
Öffnen Sie die Datei Program.cs in einem Editor.
Ersetzen Sie die Namespace-Anweisung am Anfang der Datei durch Folgendes:
namespace CreateEnrollmentGroup;
Fügen Sie am Anfang der Datei über der
namespace
-Anweisung die folgendenusing
-Anweisungen hinzu:using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; using Microsoft.Azure.Devices.Provisioning.Service;
Fügen Sie der Klasse
Program
die folgenden Felder hinzu, und nehmen Sie die angegebenen Änderungen vor.private static string ProvisioningConnectionString = "{ProvisioningServiceConnectionString}"; private static string EnrollmentGroupId = "enrollmentgrouptest"; private static string X509RootCertPath = @"{Path to a .cer or .pem file for a verified root CA or intermediate CA X.509 certificate}";
Ersetzen Sie den Platzhalterwert
ProvisioningServiceConnectionString
durch die Verbindungszeichenfolge des Bereitstellungsdiensts, die Sie im vorherigen Abschnitt kopiert haben.Ersetzen Sie den Platzhalterwert
X509RootCertPath
durch den Pfad zu einer PEM- oder CER-Datei. Diese Datei stellt den öffentlichen Teil eines X.509-Zertifikats der Stammzertifizierungsstelle, das zuvor hochgeladen und mit Ihrem Bereitstellungsdienst überprüft wurde, oder ein Zwischenzertifikat dar, das selbst hochgeladen und überprüft wurde oder aber dafür sorgte, dass ein Zertifikat in seiner Signaturkette hochgeladen und überprüft wurde.Sie können optional auch den Wert
EnrollmentGroupId
ändern. Die Zeichenfolge darf nur Kleinbuchstaben und Bindestriche enthalten.
Wichtig
Beachten Sie bei Produktionscode die folgenden Sicherheitshinweise:
- Die Hartcodierung der Verbindungszeichenfolge für den Bereitstellungsdienstadministrator verstößt gegen die bewährten Methoden für die Sicherheit. Stattdessen sollte die Verbindungszeichenfolge sicher gespeichert werden, etwa in einer sicheren Konfigurationsdatei oder in der Registrierung.
- Achten Sie darauf, dass nur der öffentliche Teil des Signaturzertifikats hochgeladen wird. Laden Sie nie PFX-Dateien (PKCS12) oder PEM-Dateien mit privaten Schlüsseln in den Bereitstellungsdienst hoch.
Füge der
Program
-Klasse die folgende Methode hinzu. Dieser Code erstellt einenEnrollmentGroup
-Eintrag und ruft dann die MethodeProvisioningServiceClient.CreateOrUpdateEnrollmentGroupAsync
auf, um die Registrierungsgruppe dem Bereitstellungsdienst hinzuzufügen.public static async Task RunSample() { Console.WriteLine("Starting sample..."); using (ProvisioningServiceClient provisioningServiceClient = ProvisioningServiceClient.CreateFromConnectionString(ProvisioningConnectionString)) { #region Create a new enrollmentGroup config Console.WriteLine("\nCreating a new enrollmentGroup..."); var certificate = new X509Certificate2(X509RootCertPath); Attestation attestation = X509Attestation.CreateFromRootCertificates(certificate); EnrollmentGroup enrollmentGroup = new EnrollmentGroup( EnrollmentGroupId, attestation) { ProvisioningStatus = ProvisioningStatus.Enabled }; Console.WriteLine(enrollmentGroup); #endregion #region Create the enrollmentGroup Console.WriteLine("\nAdding new enrollmentGroup..."); EnrollmentGroup enrollmentGroupResult = await provisioningServiceClient.CreateOrUpdateEnrollmentGroupAsync(enrollmentGroup).ConfigureAwait(false); Console.WriteLine("\nEnrollmentGroup created with success."); Console.WriteLine(enrollmentGroupResult); #endregion } }
Ersetzen Sie schließlich die Methode
Main
durch die folgenden Zeilen:static async Task Main(string[] args) { await RunSample(); Console.WriteLine("\nHit <Enter> to exit ..."); Console.ReadLine(); }
Speichern Sie die Änderungen.
Dieser Abschnitt zeigt, wie Sie ein Node.js-Skript erstellen, das Ihrem Bereitstellungsdienst eine Registrierungsgruppe hinzufügt.
Tipp
Der Einfachheit halber wird in diesem Beispiel die SAS-Authentifizierung verwendet, um eine Verbindung mit der DPS-Dienst-API herzustellen. Ein sichererer Ansatz besteht darin, Azure-Tokenanmeldeinformationen zu verwenden. Ein Beispiel für diese Authentifizierungsmethode finden Sie im Beispiel create_tpm_enrollment_with_token_credentials.js im Node.js SDK.
Führen Sie in einem Befehlsfenster in Ihrem Arbeitsordner Folgendes aus:
npm install azure-iot-provisioning-service
In diesem Schritt wird das Paket „Azure IoT-DPS-Dienstclient“ heruntergeladen und installiert sowie ein Verweis auf das Paket und dessen Abhängigkeiten hinzugefügt. Dieses Paket enthält die Binärdateien für das Node.js-Dienst-SDK.
Erstellen Sie mit einem Text-Editor in Ihrem Arbeitsordner die Datei create_enrollment_group.js. Fügen Sie der Datei den folgenden Code hinzu, und speichern Sie sie:
'use strict'; var fs = require('fs'); var provisioningServiceClient = require('azure-iot-provisioning-service').ProvisioningServiceClient; var serviceClient = provisioningServiceClient.fromConnectionString(process.argv[2]); var enrollment = { enrollmentGroupId: 'first', attestation: { type: 'x509', x509: { signingCertificates: { primary: { certificate: fs.readFileSync(process.argv[3], 'utf-8').toString() } } } }, provisioningStatus: 'disabled' }; serviceClient.createOrUpdateEnrollmentGroup(enrollment, function(err, enrollmentResponse) { if (err) { console.log('error creating the group enrollment: ' + err); } else { console.log("enrollment record returned: " + JSON.stringify(enrollmentResponse, null, 2)); enrollmentResponse.provisioningStatus = 'enabled'; serviceClient.createOrUpdateEnrollmentGroup(enrollmentResponse, function(err, enrollmentResponse) { if (err) { console.log('error updating the group enrollment: ' + err); } else { console.log("updated enrollment record returned: " + JSON.stringify(enrollmentResponse, null, 2)); } }); } });
Öffnen Sie eine Windows-Eingabeaufforderung.
Klonen Sie das GitHub-Repository für das Codebeispiel zur Geräteregistrierung, indem Sie das Java Service SDK verwenden:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
Wechseln Sie von dem Speicherort, an den Sie das Repository heruntergeladen haben, zum Beispielordner:
cd azure-iot-sdk-java\provisioning\provisioning-service-client-samples\service-enrollment-group-sample
Öffnen Sie die Datei /src/main/java/samples/com/microsoft/azure/sdk/iot/ServiceEnrollmentGroupSample.java in einem Editor Ihrer Wahl.
Ersetzen Sie
[Provisioning Connection String]
durch die Verbindungszeichenfolge, die Sie unter Abrufen der Verbindungszeichenfolge für Ihren Bereitstellungsdienst kopiert haben.Ersetzen Sie die Konstantenzeichenfolge
PUBLIC_KEY_CERTIFICATE_STRING
durch den Wert Ihrer.pem
-Zertifikatdatei der Stamm- oder Zwischenzertifizierungsstelle. Diese Datei stellt den öffentlichen Teil eines X.509-Zertifikats der Stammzertifizierungsstelle, das zuvor hochgeladen und mit Ihrem Bereitstellungsdienst überprüft wurde, oder ein Zwischenzertifikat dar, das selbst hochgeladen und überprüft wurde oder aber dafür sorgte, dass ein Zertifikat in seiner Signaturkette hochgeladen und überprüft wurde.Die Syntax des Zertifikattexts muss diesem Muster (ohne zusätzliche Leerstellen oder Zeichen) entsprechen:
private static final String PUBLIC_KEY_CERTIFICATE_STRING = "-----BEGIN CERTIFICATE-----\n" + "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" + ... "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" + "-----END CERTIFICATE-----";
Das manuelle Aktualisieren dieses Zeichenfolgenwerts kann fehleranfällig sein. Zum Generieren der richtigen Syntax können Sie den folgenden Befehl kopieren und in eine Git Bash-Eingabeaufforderung einfügen, dann
your-cert.pem
durch den Speicherort Ihrer Zertifikatdatei ersetzen und die EINGABETASTE drücken. Dieser Befehl generiert die Syntax für den Wert der ZeichenfolgenkonstantePUBLIC_KEY_CERTIFICATE_STRING
und schreibt sie in die Ausgabe.sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' your-cert.pem
Kopieren Sie den ausgegebenen Zertifikattext für den konstanten Wert, und fügen Sie ihn ein.
Wichtig
Beachten Sie bei Produktionscode die folgenden Sicherheitshinweise:
- Die Hartcodierung der Verbindungszeichenfolge für den Bereitstellungsdienstadministrator verstößt gegen die bewährten Methoden für die Sicherheit. Stattdessen sollte die Verbindungszeichenfolge sicher gespeichert werden, etwa in einer sicheren Konfigurationsdatei oder in der Registrierung.
- Achten Sie darauf, dass nur der öffentliche Teil des Signaturzertifikats hochgeladen wird. Laden Sie nie PFX-Dateien (PKCS12) oder PEM-Dateien mit privaten Schlüsseln in den Bereitstellungsdienst hoch.
Im Beispiel können Sie einen IoT-Hub in der Registrierungsgruppe festlegen, um dafür das Gerät bereitzustellen. Dies muss ein IoT-Hub sein, der zuvor mit dem Bereitstellungsdienst verknüpft wurde. Für diesen Artikel kann DPS aus den verknüpften Hubs entsprechend der Standardzuordnungsrichtlinie in gleichmäßig gewichteter Verteilung auswählen. Kommentieren Sie in der Datei die folgende Anweisung aus:
enrollmentGroup.setIotHubHostName(IOTHUB_HOST_NAME); // Optional parameter.
Der Beispielcode erstellt und aktualisiert eine Registrierungsgruppe für X.509-Geräte, fragt sie ab und löscht sie. Um die erfolgreiche Erstellung der Registrierungsgruppe im Azure-Portal zu überprüfen, kommentieren Sie die folgenden Codezeilen nahe am Ende der Datei aus:
// ************************************** Delete info of enrollmentGroup *************************************** System.out.println("\nDelete the enrollmentGroup..."); provisioningServiceClient.deleteEnrollmentGroup(enrollmentGroupId);
Speichern Sie die Datei ServiceEnrollmentGroupSample.java.
Ausführen des Registrierungsgruppenbeispiels
Führen Sie das Beispiel aus:
dotnet run
Bei erfolgreicher Erstellung werden im Befehlsfenster die Eigenschaften der neuen Registrierungsgruppe angezeigt.
Führen Sie in Ihrer Eingabeaufforderung den folgenden Befehl aus. Schließen Sie die Anführungszeichen um die Befehlsargumente mit ein, und ersetzen Sie
<connection string>
durch die im vorhergehenden Abschnitt kopierte Verbindungszeichenfolge und<certificate .pem file>
durch den Pfad zu Ihrer.pem
-Zertifikatdatei. Diese Datei stellt den öffentlichen Teil eines X.509-Zertifikats der Stammzertifizierungsstelle, das zuvor hochgeladen und mit Ihrem Bereitstellungsdienst überprüft wurde, oder ein Zwischenzertifikat dar, das selbst hochgeladen und überprüft wurde oder aber dafür sorgte, dass ein Zertifikat in seiner Signaturkette hochgeladen und überprüft wurde.node create_enrollment_group.js "<connection string>" "<certificate .pem file>"
Bei erfolgreicher Erstellung werden im Befehlsfenster die Eigenschaften der neuen Registrierungsgruppe angezeigt.
Führen Sie in Ihrer Eingabeaufforderung aus dem Ordner azure-iot-sdk-java\provisioning\provisioning-service-client-samples\service-enrollment-group-sample den folgenden Befehl zum Erstellen des Beispiels aus:
mvn install -DskipTests
Dieser Befehl lädt das Maven-Paket „Azure IoT DPS-Dienstclient“ auf Ihren Computer herunter und erstellt das Beispiel. Dieses Paket enthält die Binärdateien für das Java-Dienst-SDK.
Wechseln Sie zum Zielordner, und führen Sie das Beispiel aus. Beachten Sie, dass der Build im vorhergehenden Schritt die JAR-Datei im Zielordner mit dem folgenden Dateiformat ausgibt:
provisioning-x509-sample-{version}-with-deps.jar
; Beispiel:provisioning-x509-sample-1.8.1-with-deps.jar
. Möglicherweise müssen Sie im folgenden Befehl die Version ersetzen.cd target java -jar ./service-enrollment-group-sample-1.8.1-with-deps.jar
Bei erfolgreicher Erstellung werden im Befehlsfenster die Eigenschaften der neuen Registrierungsgruppe angezeigt.
So überprüfen Sie, ob die Registrierungsgruppe erstellt wurde
Navigieren Sie zu Ihrer Device Provisioning Service-Instanz im Azure-Portal.
Wählen Sie im Menü Einstellungen die Option Registrierungen verwalten aus.
Wählen Sie die Registerkarte Registrierungsgruppen aus. Daraufhin sollte ein neuer Registrierungseintrag mit der im Beispiel verwendeten Registrierungsgruppen-ID angezeigt werden.
Bereinigen von Ressourcen
Wenn Sie die Tutorials zum Azure IoT Hub Device Provisioning Service erkunden möchten, sollten Sie die in diesem Artikel erstellten Ressourcen nicht bereinigen. Führen Sie andernfalls die folgenden Schritte zum Löschen aller Ressourcen aus, die im Rahmen dieses Artikels erstellt wurden.
Schließen Sie das Beispielausgabefenster auf Ihrem Computer.
Wählen Sie im Azure-Portal im linken Menü die Option Alle Ressourcen aus.
Wählen Sie Ihre Device Provisioning Service-Instanz aus.
Wählen Sie im Menü auf der linken Seite unter Einstellungen die Option Registrierungen verwalten aus.
Wählen Sie die Registerkarte Registrierungsgruppen aus.
Aktivieren Sie das Kontrollkästchen neben dem Gruppennamen der Registrierungsgruppe, die Sie in diesem Artikel erstellt haben.
Wählen Sie oben auf der Seite Löschen aus.
Wählen Sie aus Ihrem Device Provisioning Service im Azure-Portal im Menü auf der linken Seite unter Einstellungen die Option Zertifikate aus.
Wählen Sie das Zertifikat aus, das Sie für diesen Artikel hochgeladen haben.
Wählen Sie am oberen Rand von Zertifikatdetails die Option Löschen aus.
Tools für Zertifikate
Das Azure IoT C SDK verfügt über Skripts, mit denen Sie Zertifikate erstellen und verwalten können. Weitere Informationen finden Sie unter Verwalten von Zertifikaten von Testzertifizierungsstellen für Beispiele und Tutorials.
Das Azure IoT Node.js SDK verfügt über Skripts, mit denen Sie Zertifikate erstellen und verwalten können. Weitere Informationen finden Sie unter Tools für das Azure IoT Device Provisioning-Geräte-SDK für Node.js.
Sie können auch Tools verwenden, die im Azure IoT C-SDK verfügbar sind. Weitere Informationen finden Sie unter Verwalten von Zertifikaten von Testzertifizierungsstellen für Beispiele und Tutorials.
Das Azure IoT Java SDK enthält Testtools, mit denen Sie Zertifikate erstellen und verwalten können. Weitere Informationen finden Sie unter X509-Zertifikatgenerator mithilfe des DICE-Emulators.
Nächste Schritte
In diesem Artikel haben Sie mithilfe des Azure IoT Hub Device Provisioning Service eine Registrierungsgruppe für ein X.509-Zertifikat der Zwischen- oder Stammzertifizierungsstelle erstellt. Nutzen Sie für weiterführende Informationen die folgenden Links:
Weitere Informationen zum X.509-Zertifikatnachweis mit DPS finden Sie unter X.509-Zertifikatnachweis.
Ein End-to-End-Beispiel für die Bereitstellung von Geräten über eine Registrierungsgruppe mithilfe von X.509-Zertifikaten finden Sie im Tutorial Bereitstellen mehrerer X.509-Geräte mit Registrierungsgruppen.
Informationen zum Verwalten von einzelnen Registrierungen und Registrierungsgruppen über das Azure-Portal finden Sie unter Verwalten von Geräteregistrierungen mit dem Azure-Portal.