Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
X.509-Zertifikate sind digitale Dokumente, die einen Benutzer, Computer, Service oder Gerät repräsentieren. Eine Zertifizierungsstelle (CA), eine untergeordnete CA oder eine Registrierungsbehörde stellt X.509-Zertifikate aus. Die Zertifikate enthalten den öffentlichen Schlüssel des Zertifikatssubjekts. Sie enthalten nicht den privaten Schlüssel des Subjekts, der sicher aufbewahrt werden muss. RFC 5280 dokumentiert öffentliche Schlüsselzertifikate, einschließlich ihrer Felder und Erweiterungen. Öffentliche Schlüsselzertifikate werden digital signiert und enthalten typischerweise folgende Informationen:
- Informationen zum Zertifikatsfach
- Der öffentliche Schlüssel, der dem privaten Schlüssel des Subjekts entspricht
- Informationen über die ausstellende CA
- Die unterstützten Verschlüsselungs- und/oder digitale Signierungsalgorithmen
- Informationen zur Feststellung des Widerrufs und des Gültigkeitsstatus des Zertifikats
Zertifikatfelder
Es gibt drei inkrementelle Versionen des X.509-Zertifikatsstandards, und jede nachfolgende Version fügte dem Standard Zertifikatsfelder hinzu:
- Version 1 (v1), veröffentlicht 1988, folgt dem ursprünglichen X.509-Standard für Zertifikate.
- Version 2 (v2), veröffentlicht 1993, fügt den in Version 1 enthaltenen Feldern zwei Felder hinzu.
- Version 3 (v3), veröffentlicht 2008, stellt die aktuelle Version des X.509-Standards dar. Diese Version bietet Unterstützung für Zertifikatserweiterungen.
Dieser Abschnitt dient als allgemeine Referenz für die Zertifikatsfelder und Zertifikatserweiterungen, die in X.509-Zertifikaten verfügbar sind. Weitere Informationen zu Zertifikatsfeldern und Zertifikatserweiterungen, einschließlich Datentypen, Einschränkungen und weiteren Details, finden Sie in der RFC 5280-Spezifikation .
Felder der Version 1
Die folgende Tabelle beschreibt die Zertifikatsfelder der Version 1 für X.509-Zertifikate. Alle in dieser Tabelle enthaltenen Felder sind in nachfolgenden X.509-Zertifikatsversionen verfügbar.
| Name | Beschreibung |
|---|---|
| Version | Eine ganze Zahl, die die Versionsnummer des Zertifikats identifiziert. |
| Seriennummer | Eine ganze Zahl, die die eindeutige Nummer für jedes von einer Zertifizierungsstelle (CA) ausgestellte Zertifikat darstellt. |
| Signatur | Die Identifikatorin für den kryptographischen Algorithmus, den die CA zur Unterschrift des Zertifikats verwendet. Der Wert umfasst sowohl die Kennung des Algorithmus als auch alle optionalen Parameter, die von diesem Algorithmus verwendet werden, falls zutreffend. |
| Emittent | Der Distinguished Name (DN) der ausstellenden CA des Zertifikats. |
| Gültigkeitsdauer | Der inklusive Zeitraum, für den das Zertifikat gültig ist. |
| Betreff | Der Distinguished Name (DN) des Zertifikatsfachs. |
| Öffentliche Schlüsselinformationen zum Thema | Der öffentliche Schlüssel, der dem Zertifikatssubjekt gehört. |
Felder der Version 2
Die folgende Tabelle beschreibt die für Version 2 hinzugefügten Felder und enthält Informationen über den Zertifikatsaussteller. Diese Felder werden jedoch nur selten genutzt. Alle in dieser Tabelle enthaltenen Felder sind in nachfolgenden X.509-Zertifikatsversionen verfügbar.
| Name | Beschreibung |
|---|---|
| Eindeutige ID des Herausgebers | Eine eindeutige Kennung, die die ausstellende CA repräsentiert, wie sie von der ausstellenden CA definiert ist. |
| Eindeutige Identität des Subjekts | Eine eindeutige Kennung, die das Zertifikatsubjekt repräsentiert, wie von der ausstellenden CA definiert. |
Versionen 3 Felder
Die folgende Tabelle beschreibt das für Version 3 hinzugefügte Feld und stellt eine Sammlung von X.509-Zertifikatserweiterungen dar.
| Name | Beschreibung |
|---|---|
| Erweiterungen | Eine Sammlung von standardisierten und internetspezifischen Zertifikatserweiterungen. Weitere Informationen zu den verfügbaren Zertifikatserweiterungen für X.509 v3-Zertifikate finden Sie unter Zertifikatserweiterungen. |
Zertifikatserweiterungen
Zertifikatserweiterungen, eingeführt mit Version 3, bieten Methoden, um mehr Attribute mit Benutzern oder öffentlichen Schlüsseln zu verknüpfen und Beziehungen zwischen Zertifizierungsstellen zu verwalten. Weitere Informationen zu Zertifikatserweiterungen finden Sie im Abschnitt Zertifikatserweiterungen der RFC 5280-Spezifikation .
Standarderweiterungen
Der X.509-Standard definiert die in diesem Abschnitt enthaltenen Erweiterungen für die Nutzung in der Internet-Public-Key-Infrastruktur (PKI).
| Name | Beschreibung |
|---|---|
| Autoritätsschlüsselbezeichner | Eine Kennung, die entweder das Zertifikatsubjekt und die Seriennummer des CA-Zertifikats, das dieses Zertifikat ausgestellt hat, oder einen Hash des öffentlichen Schlüssels der ausstellenden CA repräsentiert. |
| Schlüsselbezeichner des Antragstellers | Ein Hash des aktuellen öffentlichen Schlüssels des Zertifikats. |
| Schlüsselverwendung | Ein bitmappierter Wert, der die Dienste definiert, für die ein Zertifikat verwendet werden kann. |
| Nutzungszeitraum für private Schlüssel | Die Gültigkeitsdauer für den privaten Schlüsselteil eines Schlüsselpaars. |
| Zertifikatsrichtlinien | Eine Sammlung von Richtlinieninformationen, die zur Validierung des Zertifikatssubjekts verwendet werden. |
| Policy Mappings | Eine Sammlung von Policy Mappings, von denen jede eine Policy in einer Organisation auf Policy in einer anderen Organisation abbildet. |
| Alternativer Antragstellername | Eine Sammlung alternativer Namen für das Subjekt. |
| Alternativer Name des Emittenten | Eine Sammlung alternativer Namen für die ausstellende CA. |
| Attribute des Betreffverzeichnisses | Eine Sammlung von Attributen aus einem X.500- oder LDAP-Verzeichnis. |
| Grundlegende Einschränkungen | Eine Sammlung von Einschränkungen, die es dem Zertifikat erlauben zu bestimmen, ob es an eine CA oder an einen Benutzer, Computer, Gerät oder Dienst ausgestellt wird. Diese Erweiterung enthält außerdem eine Pfadlängenbeschränkung, die die Anzahl der untergeordneten CAs begrenzt, die existieren können. |
| Namensbeschränkungen | Eine Sammlung von Einschränkungen, die festlegen, welche Namensräume in einem von der CA ausgestellten Zertifikat erlaubt sind. |
| Politische Einschränkungen | Eine Sammlung von Einschränkungen, die verwendet werden können, um Richtlinienzuordnungen zwischen CAs zu verbieten. |
| Verwendung erweiterter Schlüssel | Eine Sammlung von Key Purpose-Werten, die angeben, wie der öffentliche Schlüssel eines Zertifikats verwendet werden kann, über die in der Key Usage-Erweiterung identifizierten Zwecke hinaus. |
| CRL-Verteilungspunkte | Eine Sammlung von URLs, in der die Basis der Zertifikatswiderrufsliste (CRL) veröffentlicht wird. |
| Inhibit anyPolicy | Verhindert die Nutzung der All Issueance Policies OID (2.5.29.32.0) in untergeordneten CA-Zertifikaten |
| Frischester CRL | Diese Erweiterung, auch bekannt als Delta CRL Distribution Point, enthält eine oder mehrere URLs, an denen das delta-CRL der ausstellenden CA veröffentlicht wird. |
Private Internet-Erweiterungen
Die in diesem Abschnitt enthaltenen Erweiterungen ähneln Standarderweiterungen und können verwendet werden, um Anträge auf Online-Informationen über die ausstellende CA oder das Zertifikatsthema zu leiten.
| Name | Beschreibung |
|---|---|
| Informationszugang der Autorität | Eine Sammlung von Einträgen, die das Format und den Ort der zusätzlichen Informationen beschreiben, die von der ausstellenden CA bereitgestellt werden. |
| Zugang zu Fachinformationen | Eine Sammlung von Einträgen, die das Format und den Ort der zusätzlichen Informationen beschreiben, die vom Zertifikatssubjekt bereitgestellt werden. |
Zertifikatformate
Zertifikate können in verschiedenen Formaten gespeichert werden. Azure IoT Hub Authentifizierung verwendet typischerweise die Formate Privacy-Enhanced Mail (PEM) und Personal Information Exchange (PFX). Die folgende Tabelle beschreibt häufig verwendete Dateien und Formate zur Darstellung von Zertifikaten.
| Format | Beschreibung |
|---|---|
| Binäres Zertifikat | Ein rohes binäres Zertifikat mit Distinguished Encoding Rules (DER) ASN.1-Codierung. |
| ASCII-PEM-Format | Eine PEM-Zertifikatsdatei (.pem) enthält ein Base64-codiertes Zertifikat, das mit -----BEGIN CERTIFICATE----- beginnt und endet mit -----END CERTIFICATE-----. Als eines der gebräuchlichsten Formate für X.509-Zertifikate wird das PEM-Format vom IoT Hub beim Hochladen bestimmter Zertifikate, wie Gerätezertifikate, benötigt. |
| ASCII-PEM-Schlüssel | Enthält einen Base64-codierten DER-Schlüssel, optional mit weiteren Metadaten über den zum Passwortschutz verwendeten Algorithmus. |
| PKCS #7 Zertifikat | Ein Format, das für den Transport signierter oder verschlüsselter Daten entwickelt wurde. Es kann die gesamte Zertifikatskette umfassen. RFC 2315 definiert dieses Format. |
| PKCS #8 Schlüssel | Das Format für einen Private-Key-Store. RFC 5208 definiert dieses Format. |
| PKCS #12 Schlüssel und Zertifikat | Ein komplexes Format, das einen Schlüssel und die gesamte Zertifikatskette speichern und schützen kann. Sie wird häufig mit einer .p12- oder .pfx-Erweiterung verwendet. PKCS #12 ist gleichbedeutend mit dem PFX-Format. RFC 7292 definiert dieses Format. |
Selbstsignierte Zertifikate
Sie können ein Gerät zu Testzwecken an Ihrem IoT-Hub authentifizieren, indem Sie zwei selbstsignierte Zertifikate verwenden. Diese Art der Authentifizierung wird manchmal als Daumenabdruck-Authentifizierung bezeichnet, da die Zertifikate durch berechnete Hash-Werte, sogenannte Fingerabdrücke oder Daumenabdrücke, identifiziert werden. Diese berechneten Hashwerte werden vom IoT Hub verwendet, um Ihre Geräte zu authentifizieren.
Important
Wir empfehlen, Zertifikate zu verwenden, die von einer ausstellenden Zertifizierungsstelle (CA) signiert sind, auch zu Testzwecken. Verwenden Sie niemals selbstsignierte Zertifikate in der Produktion.
Erstellen eines selbstsignierten Zertifikats
Sie können OpenSSL verwenden, um selbstsignierte Zertifikate zu erstellen. Die folgenden Schritte zeigen Ihnen, wie Sie OpenSSL-Befehle in einer Bash-Shell ausführen, um ein selbstsigniertes Zertifikat zu erstellen und einen Zertifikatsfingerabdruck abzurufen, der zur Authentifizierung Ihres Geräts in IoT Hub verwendet werden kann.
Note
Wenn Sie selbstsignierte Zertifikate für Tests verwenden möchten, müssen Sie für jedes Gerät zwei Zertifikate erstellen.
Führen Sie folgenden Befehl aus, um einen privaten Schlüssel zu generieren und eine PEM-kodierte private Schlüsseldatei (.key) zu erstellen, wobei die folgenden Platzhalter durch ihre entsprechenden Werte ersetzt werden. Der durch den folgenden Befehl erzeugte private Schlüssel verwendet den RSA-Algorithmus mit 2048-Bit-Verschlüsselung.
{KeyFile}. Der Name deiner privaten Schlüsseldatei.
openssl genpkey -out {KeyFile} -algorithm RSA -pkeyopt rsa_keygen_bits:2048Führen Sie den folgenden Befehl aus, um eine PKCS #10 Zertifikatsanfrage (CSR) zu generieren, und erstellen Sie eine CSR-(.csr)-Datei, wobei die folgenden Platzhalter durch ihre entsprechenden Werte ersetzt werden. Stellen Sie sicher, dass Sie die Geräte-ID des IoT-Geräts für Ihr selbstsigniertes Zertifikat angeben, wenn Sie danach aufgefordert werden.
{KeyFile}. Der Name deiner privaten Schlüsseldatei.
{CsrFile}. Der Name deiner CSR-Datei.
{DeviceID}. Der Name Ihres IoT-Geräts.
openssl req -new -key {KeyFile} -out {CsrFile} Country Name (2 letter code) [XX]:. State or Province Name (full name) []:. Locality Name (eg, city) [Default City]:. Organization Name (eg, company) [Default Company Ltd]:. Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server hostname) []:{DeviceID} Email Address []:. Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:. An optional company name []:.Führen Sie folgenden Befehl aus, um Ihre CSR zu überprüfen und zu verifizieren, wobei Sie die folgenden Platzhalter durch ihre entsprechenden Werte ersetzen.
{CsrFile}. Der Name Ihrer Zertifikatsakte.
openssl req -text -in {CsrFile} -verify -nooutFühren Sie den folgenden Befehl aus, um ein selbstsigniertes Zertifikat zu generieren und eine PEM-codierte Zertifikatsdatei (.crt) zu erstellen, wobei die folgenden Platzhalter durch ihre entsprechenden Werte ersetzt werden. Der Befehl konvertiert und signiert Ihre CSR mit Ihrem privaten Schlüssel und erzeugt ein selbstsigniertes Zertifikat, das in 365 Tagen abläuft.
{KeyFile}. Der Name deiner privaten Schlüsseldatei.
{CsrFile}. Der Name deiner CSR-Datei.
{CrtFile}. Der Name Ihrer Zertifikatsakte.
openssl x509 -req -days 365 -in {CsrFile} -signkey {KeyFile} -out {CrtFile}Führe folgenden Befehl aus, um den Fingerabdruck des Zertifikats abzurufen und ersetze die folgenden Platzhalter durch die entsprechenden Werte. Der Fingerabdruck eines Zertifikats ist ein berechneter Hashwert, der einzigartig für dieses Zertifikat ist. Sie benötigen den Fingerabdruck, um Ihr IoT-Gerät im IoT Hub für Tests zu konfigurieren.
{CrtFile}. Der Name Ihrer Zertifikatsakte.
openssl x509 -in {CrtFile} -noout -fingerprint
Zertifikat manuell nach dem Hochladen überprüfen
Wenn Sie Ihr Root Certificate Authority (CA)-Zertifikat oder das untergeordnete CA-Zertifikat auf Ihren IoT-Hub hochladen, können Sie das Zertifikat automatisch verifizieren. Wenn du dein Zertifikat beim Hochladen nicht automatisch verifiziert hast, wird dein Zertifikat mit dem Status auf Unverifiziert angezeigt. Sie müssen die folgenden Schritte durchführen, um Ihr Zertifikat manuell zu überprüfen.
Wählen Sie das Zertifikat aus, um den Dialog Zertifikatsdetails anzuzeigen.
Wählen Sie im Dialog Verifizierungscode generieren .
Kopieren Sie den Prüfcode in die Zwischenablage. Sie müssen diesen Verifizierungscode in den folgenden Schritten als Zertifikatssubjekt verwenden. Zum Beispiel, wenn der Verifizierungscode ist
75B86466DA34D2B04C0C4C9557A119687ADAE7D4732BDDB3, fügen Sie dies als Gegenstand Ihres Zertifikats hinzu, wie im nächsten Schritt gezeigt.Es gibt drei Möglichkeiten, ein Verifizierungszertifikat zu erstellen:
Wenn du das PowerShell-Skript von Microsoft verwendest, führe
New-CACertsVerificationCert "<verification code>"aus, um ein Zertifikat mit dem NamenVerifyCert4.cerzu erstellen, das durch den zuvor generierten Verifizierungscode ersetzt<verification code>wird. Weitere Informationen finden Sie unter Verwalten von ZS-Zertifikaten für Beispiele und Tutorials im GitHub-Repository für das Azure IoT Hub Device SDK für C.Wenn Sie das von Microsoft bereitgestellte Bash-Skript verwenden, führen
./certGen.sh create_verification_certificate "<verification code>"Sie aus, um ein Zertifikat namens verification-code.cert.pem zu erstellen, das durch den zuvor generierten Verifizierungscode ersetzt<verification code>wird. Weitere Informationen finden Sie unter Managing test CA certificates für Beispiele und Tutorials im GitHub-Repository für das Azure IoT Hub Device SDK für C.Wenn Sie OpenSSL verwenden, um Ihre Zertifikate zu generieren, müssen Sie zunächst einen privaten Schlüssel erstellen und dann eine Datei für Zertifikatsanfrage (CSR). Im folgenden Beispiel ersetzen
<verification code>Sie durch den zuvor generierten Verifizierungscode:
openssl genpkey -out pop.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048 openssl req -new -key pop.key -out pop.csr ----- Country Name (2 letter code) [XX]:. State or Province Name (full name) []:. Locality Name (eg, city) [Default City]:. Organization Name (eg, company) [Default Company Ltd]:. Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server hostname) []:<verification code> Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:Dann erstelle ein Zertifikat mit der entsprechenden Konfigurationsdatei entweder für die Root-CA oder für die untergeordnete CA und die CSR-Datei. Das folgende Beispiel zeigt, wie man OpenSSL verwendet, um das Zertifikat aus einer Root-CA-Konfigurationsdatei und der CSR-Datei zu erstellen.
openssl ca -config rootca.conf -in pop.csr -out pop.crt -extensions client_extWeitere Informationen finden Sie unter Tutorial – Erstellen und hochladen von Zertifikaten zum Testen.
Wählen Sie das neue Zertifikat in der Ansicht Zertifikatsdetails aus.
Nachdem das Zertifikat hochgeladen wurde, wählen Sie Überprüfen. Der Status des Zertifikats sollte sich auf Verifiziert ändern.
Weitere Informationen
Weitere Informationen zu X.509-Zertifikaten und deren Verwendung im IoT Hub finden Sie in den folgenden Artikeln: