Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
X.509-certifikat är digitala dokument som representerar en användare, dator, tjänst eller enhet. En certifikatmyndighet (CA), underordnad CA eller registreringsmyndighet utfärdar X.509-certifikat. Certifikaten innehåller den publika nyckeln för certifikatämnet. De innehåller inte personens privata nyckel, som måste förvaras säkert. RFC 5280 dokumenterar offentliga nyckelcertifikat, inklusive deras fält och tillägg. Publika nyckelcertifikat är digitalt signerade och innehåller vanligtvis följande information:
- Information om certifikatämnet
- Den publika nyckeln som motsvarar subjektets privata nyckel
- Information om den utfärdande CA
- De stödda krypterings- och/eller digitala signeringsalgoritmerna
- Information för att fastställa intygets återkallelse och giltighetsstatus
Certifikatfält
Det finns tre inkrementella versioner av X.509-certifikatstandarden, och varje efterföljande version lade till certifikatfält i standarden:
- Version 1 (v1), publicerad 1988, följer den ursprungliga X.509-standarden för certifikat.
- Version 2 (v2), publicerad 1993, lägger till två fält till de fält som ingår i version 1.
- Version 3 (v3), publicerad 2008, representerar den nuvarande versionen av X.509-standarden. Denna version lägger till stöd för certifikattillägg.
Detta avsnitt är avsett som en allmän referens för certifikatfält och certifikatförlängningar som finns tillgängliga i X.509-certifikat. För mer information om certifikatfält och certifikattillägg, inklusive datatyper, begränsningar och andra detaljer, se RFC 5280-specifikationen .
Fält i version 1
Följande tabell beskriver Version 1-certifikatfält för X.509-certifikat. Alla fält som ingår i denna tabell finns tillgängliga i efterföljande X.509-certifikatversioner.
| Name | Description |
|---|---|
| Version | Ett heltal som identifierar certifikatets versionsnummer. |
| Serienummer | Ett heltal som representerar det unika numret för varje certifikat utfärdat av en certifikatutfärdare (CA). |
| Underskrift | Identifieraren för den kryptografiska algoritmen som CA:n använder för att signera certifikatet. Värdet inkluderar både algoritmens identifierare och eventuella valfria parametrar som används av den algoritmen, om det är tillämpligt. |
| Utfärdare | Det utmärkta namnet (DN) på certifikatets utfärdande CA. |
| Giltighet | Den inkluderande tidsperiod då certifikatet är giltigt. |
| Subject | Det utmärkta namnet (DN) för certifikatämnet. |
| Ämnets offentliga nyckelinformation | Den publika nyckeln som ägs av certifikatsubjektet. |
Fält i version 2
Följande tabell beskriver fälten som lagts till för Version 2, som innehåller information om certifikatutgivaren. Dessa fält används dock sällan. Alla fält som ingår i denna tabell finns tillgängliga i efterföljande X.509-certifikatversioner.
| Name | Description |
|---|---|
| Utfärdarens unika ID | En unik identifierare som representerar den utfärdande CA:n, enligt definitionen av den utfärdande CA:n. |
| Ämnets unika ID | En unik identifierare som representerar certifikatsubjektet, enligt definierad av den utfärdande CA:n. |
Version 3-fält
Följande tabell beskriver fältet som lagts till för Version 3, som representerar en samling X.509-certifikattillägg.
| Name | Description |
|---|---|
| Extensions | En samling standard- och internetspecifika certifikattillägg. För mer information om certifikatförlängningar som finns tillgängliga för X.509 v3-certifikat, se Certifikatförlängningar. |
Certifikatförlängningar
Certifikattillägg, som introducerades med Version 3, erbjuder metoder för att koppla fler attribut till användare eller publika nycklar samt för att hantera relationer mellan certifikatutgivare. För mer information om certifikatförlängningar, se avsnittet Certifikatförlängningar i RFC 5280-specifikationen .
Standardtilläggsfunktioner
X.509-standarden definierar de tillägg som ingår i detta avsnitt för användning i Internet public key infrastructure (PKI).
| Name | Description |
|---|---|
| Utfärdarnyckelidentifierare | En identifierare som representerar antingen certifikatsubjektet och serienumret på CA-certifikatet som utfärdade certifikatet, eller en hash av den publika nyckeln för den utfärdande CA:n. |
| Ämnesnyckelidentifierare | En hash av det aktuella certifikatets publika nyckel. |
| Nyckelanvändning | Ett bitmappat värde som definierar de tjänster för vilka ett certifikat kan användas. |
| Period för användning av privata nycklar | Giltighetsperioden för den privata nyckeldelen av ett nyckelpar. |
| Certifikatpolicys | En samling policyinformation som används för att validera certifikatsubjektet. |
| Policykartläggningar | En samling policymappningar, där var och en mappar en policy i en organisation till policy i en annan organisation. |
| Alternativt namn på ämne | En samling alternativa namn för ämnet. |
| Utgivarens alternativa namn | En samling alternativa namn för den utfärdande CA. |
| Attribut i ämneskatalogen | En samling attribut från en X.500- eller LDAP-katalog. |
| Grundläggande begränsningar | En samling begränsningar som tillåter certifikatet att ange om det utfärdas till en CA eller till en användare, dator, enhet eller tjänst. Denna utvidgning inkluderar också en väglängdsbegränsning som begränsar antalet underordnade CA:er som kan existera. |
| Namnbegränsningar | En samling begränsningar som anger vilka namnrymder som är tillåtna i ett certifikat utfärdat av en CA. |
| Policybegränsningar | En samling begränsningar som kan användas för att förbjuda policymappningar mellan CA:er. |
| Utökad nyckelanvändning | En samling nyckelsyftesvärden som visar hur ett certifikats publika nyckel kan användas, utöver de syften som anges i Key Usage-tillägget . |
| CRL-fördelningspunkter | En samling URL:er där baslistan för certifikatåterkallelse (CRL) publiceras. |
| Inhibita anyPolicy | Förhindrar användningen av All Issueance Policies OID (2.5.29.32.0) i underordnade CA-certifikat |
| Färskaste CRL | Denna tillägg, även känd som Delta CRL Distribution Point, innehåller en eller flera URL:er där den utfärdande CA:s delta CRL publiceras. |
Privata internetutvidgningar
De tillägg som ingår i detta avsnitt liknar standardtillägg och kan användas för att leda ansökningar till onlineinformation om den utfärdande CA eller certifikatämnet.
| Name | Description |
|---|---|
| Behörighetsinformationsåtkomst | En samling poster som beskriver formatet och platsen för ytterligare information som tillhandahålls av den utfärdande CA:n. |
| Tillgång till ämnesinformation | En samling poster som beskriver formatet och platsen för ytterligare information som tillhandahålls av certifikatämnet. |
Certifikatformat
Certifikat kan sparas i olika format. Azure IoT Hub autentisering använder vanligtvis formaten Privacy-Enhanced Mail (PEM) och Personal Information Exchange (PFX). Följande tabell beskriver vanligt använda filer och format som används för att representera certifikat.
| Format | Description |
|---|---|
| Binära certifikat | Ett rått format binärt certifikat med Distinguished Encoding Rules (DER) ASN.1-kodning. |
| ASCII PEM-format | En PEM-certifikatfil (.pem) innehåller ett Base64-kodat certifikat som börjar med -----BEGIN CERTIFICATE----- och slutar på -----END CERTIFICATE-----. Ett av de vanligaste formaten för X.509-certifikat, PEM-formatet krävs av IoT Hub vid uppladdning av vissa certifikat, såsom enhetscertifikat. |
| ASCII PEM-nyckel | Innehåller en Base64-kodad DER-nyckel, eventuellt med mer metadata om algoritmen som används för lösenordsskydd. |
| PKCS #7-certifikat | Ett format utformat för transport av signerade eller krypterade data. Det kan inkludera hela certifikatkedjan. RFC 2315 definierar detta format. |
| PKCS #8-nyckel | Formatet för en privat nyckelbutik. RFC 5208 definierar detta format. |
| PKCS #12 nyckel och certifikat | Ett komplext format som kan lagra och skydda en nyckel och hela certifikatkedjan. Det används ofta med en .p12- eller .pfx-tillägg. PKCS #12 är synonymt med PFX-formatet. RFC 7292 definierar detta format. |
Självsignerade certifikat
Du kan autentisera en enhet till din IoT-hub för teständamål genom att använda två självsignerade certifikat. Denna typ av autentisering kallas ibland för tumavtrycksautentisering eftersom certifikaten identifieras med beräknade hashvärden som kallas fingeravtryck eller tumavtryck. Dessa beräknade hashvärden används av IoT Hub för att autentisera dina enheter.
Important
Vi rekommenderar att du använder certifikat signerade av en utfärdande certifikatutfärdare (CA), även för teständamål. Använd aldrig självsignerade certifikat i produktion.
Skapa ett självsignerat certifikat
Du kan använda OpenSSL för att skapa självsignerade certifikat. Följande steg visar hur du kör OpenSSL-kommandon i ett bash-skal för att skapa ett självsignerat certifikat och hämta ett certifikatfingeravtryck som kan användas för att autentisera din enhet i IoT Hub.
Note
Om du vill använda självsignerade certifikat för testning måste du skapa två certifikat för varje enhet.
Kör följande kommando för att generera en privat nyckel och skapa en PEM-kodad privat nyckelfil (.key), där följande platshållare ersätts med deras motsvarande värden. Den privata nyckeln som genereras av följande kommando använder RSA-algoritmen med 2048-bitars kryptering.
{KeyFile}. Namnet på din privata nyckelfil.
openssl genpkey -out {KeyFile} -algorithm RSA -pkeyopt rsa_keygen_bits:2048Kör följande kommando för att generera en PKCS #10 certifikatsigneringsförfrågan (CSR) och skapa en CSR (.csr)-fil, där följande platshållare ersätts med deras motsvarande värden. Se till att du anger enhets-ID för IoT-enheten för ditt självsignerade certifikat när du blir tillfrågad.
{KeyFile}. Namnet på din privata nyckelfil.
{CsrFile}. Namnet på din CSR-fil.
{DeviceID}. Namnet på din IoT-enhet.
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 []:.Kör följande kommando för att granska och verifiera din CSR, och ersätt följande platshållare med motsvarande värden.
{CsrFile}. Namnet på ditt certifikat.
openssl req -text -in {CsrFile} -verify -nooutKör följande kommando för att generera ett självsignerat certifikat och skapa en PEM-kodad certifikatfil (.crt), och ersätt följande platshållare med deras motsvarande värden. Kommandot konverterar och signerar din CSR med din privata nyckel, vilket genererar ett självsignerat certifikat som går ut om 365 dagar.
{KeyFile}. Namnet på din privata nyckelfil.
{CsrFile}. Namnet på din CSR-fil.
{CrtFile}. Namnet på ditt certifikat.
openssl x509 -req -days 365 -in {CsrFile} -signkey {KeyFile} -out {CrtFile}Kör följande kommando för att hämta certifikatets fingeravtryck och ersätt de följande platshållarna med motsvarande värden. Fingeravtrycket i ett certifikat är ett beräknat hashvärde som är unikt för det certifikatet. Du behöver fingeravtrycket för att konfigurera din IoT-enhet i IoT Hub för testning.
{CrtFile}. Namnet på ditt certifikat.
openssl x509 -in {CrtFile} -noout -fingerprint
Verifiera certifikatet manuellt efter uppladdning
När du laddar upp ditt root certificate authority (CA)-certifikat eller underordnade CA-certifikat till din IoT-hubb kan du välja att automatiskt verifiera certifikatet. Om du inte valde att automatiskt verifiera ditt certifikat vid uppladdning, visas ditt certifikat med statusen satt till Overifierad. Du måste utföra följande steg för att manuellt verifiera ditt certifikat.
Välj certifikatet för att se dialogen Certifikatdetaljer .
Välj Generera verifieringskod i dialogen.
Kopiera verifieringskoden till urklipp. Du måste använda denna verifieringskod som certifikatämne i följande steg. Till exempel, om verifieringskoden är
75B86466DA34D2B04C0C4C9557A119687ADAE7D4732BDDB3, lägg till det som ämnet för ditt certifikat som visas i nästa steg.Det finns tre sätt att generera ett verifieringscertifikat:
Om du använder PowerShell-skriptet som tillhandahålls av Microsoft, kör
New-CACertsVerificationCert "<verification code>"för att skapa ett certifikat som heterVerifyCert4.cer, ersätt<verification code>med den tidigare genererade verifieringskoden. Mer information finns på Hantering av test-CA-certifikat för exempel och handledningar i GitHub-arkivet för Azure IoT Hub Device SDK för C.Om du använder Bash-skriptet som tillhandahålls av Microsoft, kör
./certGen.sh create_verification_certificate "<verification code>"för att skapa ett certifikat som heter verification-code.cert.pem och ersätt<verification code>med den tidigare genererade verifieringskoden. För mer information, se Managing test CA certificates för exempel och handledningar i GitHub-arkivet för Azure IoT Hub Device SDK för C.Om du använder OpenSSL för att generera dina certifikat måste du först skapa en privat nyckel och sedan en certifikatsigneringsförfrågan (CSR)-fil. I följande exempel, ersätt
<verification code>med den tidigare genererade verifieringskoden:
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 []:Skapa sedan ett certifikat med lämplig konfigurationsfil för antingen rot-CA:n eller den underordnade CA:n, samt CSR-filen. Följande exempel visar hur man använder OpenSSL för att skapa certifikatet från en rot-CA-konfigurationsfil och CSR-filen.
openssl ca -config rootca.conf -in pop.csr -out pop.crt -extensions client_extFör mer information, se Tutorial - Skapa och ladda upp certifikat för testning.
Välj det nya certifikatet i vyn Certifikatdetaljer .
Efter att certifikatet har laddats upp, välj Verifiera. Certifikatets status bör ändras till verifierad.
Mer information
För mer information om X.509-certifikat och hur de används i IoT Hub, se följande artiklar: