Sdílet prostřednictvím


Kurz: Vytvoření a nahrání certifikátů pro testování

Certifikáty X.509 můžete použít k ověření zařízení ve službě IoT Hub. V produkčních prostředích doporučujeme zakoupit certifikát certifikační autority X.509 od dodavatele profesionálních certifikačních služeb. Certifikáty v rámci organizace pak můžete vydávat z interní, vlastnoručně spravované certifikační autority (CA) spojené se zakoupeným certifikátem certifikační autority, jako součástí komplexní strategie veřejné klíčové infrastruktury (PKI). Další informace o získání certifikátu certifikační autority X.509 od dodavatele profesionálních certifikačních služeb naleznete v části Získání certifikátu certifikační autority X.509 pro ověření zařízení pomocí certifikátů certifikační autority X.509.

Vytvoření vlastní privátní certifikační autority, která používá interní kořenovou certifikační autoritu jako kotvu důvěryhodnosti, je však vhodná pro testovací prostředí. Samostatně spravovaná privátní certifikační autorita s alespoň jednou podřízenou certifikační autoritou, která je zřetězená s vaší interní kořenovou certifikační autoritou, a s klientskými certifikáty pro vaše zařízení podepsanými těmito podřízenými certifikačními autoritami, vám umožňuje simulovat doporučené produktivní prostředí.

Important

Nedoporučujeme používat certifikáty podepsané svým držitelem pro produkční prostředí. Tento kurz je prezentován pouze pro demonstrační účely.

Následující kurz používá OpenSSL a kuchařku OpenSSL k popisu, jak provádět následující úlohy:

  • Vytvořte interní kořenovou certifikační autoritu (CA) a certifikát kořenové certifikační autority
  • Vytvořte interní podřízenou certifikační autoritu a certifikát pro podřízenou certifikační autoritu, podepsaný certifikátem interní kořenové certifikační autority.
  • Nahrání certifikátu podřízené certifikační autority do centra IoT pro účely testování
  • Použijte podřízenou certifikační autoritu k vytvoření klientských certifikátů pro zařízení IoT, která chcete testovat s vaším centrem IoT.

Note

Microsoft poskytuje skripty PowerShellu a Bash, které vám pomůžou pochopit, jak vytvořit vlastní certifikáty X.509 a ověřit je ve službě IoT Hub. Skripty jsou součástí Azure IoT Hub Device SDK pro C. Jsou k dispozici pouze pro demonstrační účely. Certifikáty vytvořené pomocí nich nesmí být použity pro produkční prostředí. Certifikáty obsahují pevně zakódovaná hesla ("1234") a vyprší po 30 dnech. Pro vytváření certifikátů a správu životnosti v produkčním prostředí musíte použít vlastní osvědčené postupy. Další informace najdete v tématu Správa certifikátů certifikační autority pro ukázky a kurzy v úložišti GitHub pro sadu Sdk pro zařízení služby Azure IoT Hub pro jazyk C.

Prerequisites

  • Předplatné služby Azure. Pokud nemáte předplatné Azure, vytvořte si bezplatný účet před zahájením.

  • Centrum IoT ve vašem předplatném Azure Pokud centrum ještě nemáte, můžete postupovat podle kroků v tématu Vytvoření centra IoT.

  • Nejnovější verze Gitu Ujistěte se, že je Git přidaný do proměnných prostředí, které jsou přístupné pro příkazové okno. Nejnovější git Gitu společnosti Software Freedom Conservancy.

  • Instalace OpenSSL Instalace Gitu ve Windows zahrnuje instalaci OpenSSL. K OpenSSL se dostanete z příkazového řádku Git Bash. Pokud chcete ověřit, že je OpenSSL nainstalovaný, otevřete příkazový řádek Git Bash a zadejte openssl version.

    Note

    Pokud neznáte OpenSSL a už je na počítači s Windows nainstalovaný, doporučujeme použít OpenSSL z příkazového řádku Git Bash. Případně si můžete stáhnout zdrojový kód a sestavit OpenSSL. Další informace najdete na stránce Stažené soubory OpenSSL. Nebo si můžete stáhnout předem připravený OpenSSL od partnera jiného než Microsoftu. Další informace najdete na wikiwebu OpenSSL. Společnost Microsoft neposkytuje žádné záruky týkající se platnosti balíčků stažených od třetích stran. Pokud se rozhodnete sestavit nebo stáhnout OpenSSL, ujistěte se, že je binární soubor OpenSSL přístupný ve vaší cestě a že OPENSSL_CNF proměnná prostředí je nastavená na cestu k souboru openssl.cnf .

Vytvořte kořenovou certifikační autoritu

Nejprve musíte vytvořit interní kořenovou certifikační autoritu (CA) a kořenový certifikát certifikační autority podepsaný svým držitelem, aby sloužil jako kotva důvěryhodnosti, ze které můžete vytvořit další certifikáty pro testování. Soubory používané k vytvoření a údržbě vaší interní kořenové certifikační autority se ukládají ve struktuře složek a inicializují se jako součást tohoto procesu. Proveďte následující kroky:

  • Vytvoření a inicializace složek a souborů používaných kořenovou certifikační autoritou
  • Vytvoření konfiguračního souboru, který používá OpenSSL ke konfiguraci kořenové certifikační autority a certifikátů vytvořených pomocí kořenové certifikační autority
  • Vyžádejte a vytvořte vlastnoručně podepsaný certifikát certifikační autority, který slouží jako váš kořenový certifikát certifikační autority.
  1. Spusťte okno Git Bash a spusťte následující příkaz a nahraďte {base_dir} požadovaným adresářem, ve kterém chcete vytvořit certifikáty v tomto kurzu.

    cd {base_dir}
    
  2. V okně Git Bash spusťte následující příkazy po jednom. Tento krok vytvoří následující adresářovou strukturu a podporuje soubory kořenové certifikační autority.

    Adresář nebo soubor Description
    rootca Kořenový adresář kořenové certifikační autority.
    rootca/certs Adresář, ve kterém jsou vytvořeny a uloženy certifikáty certifikační autority pro kořenovou certifikační autoritu.
    rootca/db Adresář, ve kterém jsou uloženy databáze certifikátů a podpůrné soubory kořenové certifikační autority.
    rootca/db/index Databáze certifikátů kořenové certifikační autority. Příkaz touch vytvoří soubor bez jakéhokoli obsahu pro pozdější použití. Databáze certifikátů je soubor ve formátu prostého textu spravovaný aplikací OpenSSL, který obsahuje informace o vydaných certifikátech. Další informace o databázi certifikátů najdete na stránce s příručkou openssl-ca .
    rootca/db/serial Soubor použitý k uložení sériového čísla dalšího certifikátu, který se má vytvořit pro kořenovou certifikační autoritu. Příkaz openssl vytvoří náhodné číslo o velikosti 16 bajtů v šestnáctkovém formátu a pak ho uloží do tohoto souboru, aby se soubor inicializoval pro vytvoření kořenového certifikátu certifikační autority.
    rootca/db/crlnumber Soubor používaný k ukládání sériových čísel pro odvolané certifikáty vydané kořenovou certifikační autoritou. Příkaz echo předá do souboru vzorové sériové číslo 1001.
    rootca/private Adresář, ve kterém jsou uložené soukromé soubory kořenové certifikační autority, včetně privátního klíče.
    Soubory v tomto adresáři musí být zabezpečené a chráněné.
    mkdir rootca
    cd rootca
    mkdir certs db private
    chmod 700 private
    touch db/index
    openssl rand -hex 16 > db/serial
    echo 1001 > db/crlnumber
    
  3. Vytvořte textový soubor s názvem rootca.conf v rootca adresáři, který byl vytvořen v předchozím kroku. Otevřete tento soubor v textovém editoru a zkopírujte a uložte do tohoto souboru následující nastavení konfigurace OpenSSL.

    Soubor poskytuje OpenSSL s hodnotami potřebnými ke konfiguraci testovací kořenové certifikační autority. V tomto příkladu soubor nakonfiguruje kořenovou certifikační autoritu s názvem rootca pomocí adresářů a souborů vytvořených v předchozích krocích. Soubor také poskytuje nastavení konfigurace pro:

    • Zásady certifikační autority používané kořenovou certifikační autoritou pro pole Rozlišující název certifikátu (DN)
    • Žádosti o certifikáty vytvořené kořenovou certifikační autoritou
    • Rozšíření X.509 použitá pro certifikáty hlavní certifikační autority, certifikáty podřízené certifikační autority a klientské certifikáty vydané hlavní certifikační autoritou

    Note

    Atribut home v ca_default části je nastavený tak ../rootca , že tento konfigurační soubor se používá také při vytváření certifikátu pro podřízenou certifikační autoritu. Zadaná relativní cesta umožňuje aplikaci OpenSSL přejít ze složky podřízené certifikační autority do kořenové složky certifikační autority během tohoto procesu.

    Další informace o syntaxi konfiguračních souborů OpenSSL najdete na stránce s příručkou konfigurace v dokumentaci k OpenSSL.

    [default]
    name                     = rootca
    domain_suffix            = exampledomain.com
    aia_url                  = http://$name.$domain_suffix/$name.crt
    crl_url                  = http://$name.$domain_suffix/$name.crl
    default_ca               = ca_default
    name_opt                 = utf8,esc_ctrl,multiline,lname,align
    
    [ca_dn]
    commonName               = "rootca_common_name"
    
    [ca_default]
    home                     = ../rootca
    database                 = $home/db/index
    serial                   = $home/db/serial
    crlnumber                = $home/db/crlnumber
    certificate              = $home/$name.crt
    private_key              = $home/private/$name.key
    RANDFILE                 = $home/private/random
    new_certs_dir            = $home/certs
    unique_subject           = no
    copy_extensions          = none
    default_days             = 3650
    default_crl_days         = 365
    default_md               = sha256
    policy                   = policy_c_o_match
    
    [policy_c_o_match]
    countryName              = optional
    stateOrProvinceName      = optional
    organizationName         = optional
    organizationalUnitName   = optional
    commonName               = supplied
    emailAddress             = optional
    
    [req]
    default_bits             = 2048
    encrypt_key              = yes
    default_md               = sha256
    utf8                     = yes
    string_mask              = utf8only
    prompt                   = no
    distinguished_name       = ca_dn
    req_extensions           = ca_ext
    
    [ca_ext]
    basicConstraints         = critical,CA:true
    keyUsage                 = critical,keyCertSign,cRLSign
    subjectKeyIdentifier     = hash
    
    [sub_ca_ext]
    authorityKeyIdentifier   = keyid:always
    basicConstraints         = critical,CA:true,pathlen:0
    extendedKeyUsage         = clientAuth,serverAuth
    keyUsage                 = critical,keyCertSign,cRLSign
    subjectKeyIdentifier     = hash
    
    [client_ext]
    authorityKeyIdentifier   = keyid:always
    basicConstraints         = critical,CA:false
    extendedKeyUsage         = clientAuth
    keyUsage                 = critical,digitalSignature
    subjectKeyIdentifier     = hash
    
  4. V okně Git Bash spusťte následující příkaz, který vygeneruje žádost o podepsání certifikátu (CSR) v rootca adresáři a privátní klíč v rootca/private adresáři. Další informace o příkazu OpenSSL req najdete na stránce příručky openssl-req v dokumentaci k OpenSSL.

    Note

    Doporučujeme nekopírovat ani sdílet privátní klíč, i když je tato kořenová certifikační autorita určená pro účely testování a není zpřístupněná jako součást infrastruktury veřejných klíčů (PKI).

    winpty openssl req -new -config rootca.conf -out rootca.csr -keyout private/rootca.key
    

    Zobrazí se výzva k zadání hesla PEM, jak je znázorněno v následujícím příkladu souboru privátního klíče. Zadejte a potvrďte heslo pro vygenerování privátního klíče a CSR.

    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
    -----
    

    Potvrďte, že CSR soubor je přítomen v rootca.csr adresáři. Potom před pokračováním potvrďte, rootca.keyže soubor privátního klíče je v private podadresáři.

  5. V okně Git Bash spusťte následující příkaz, který vytvoří kořenový certifikát certifikační autority podepsaný svým držitelem. Příkaz použije rozšíření ca_ext konfiguračního souboru k certifikátu. Tato rozšíření označují, že certifikát je pro kořenovou certifikační autoritu a dá se použít k podepisování certifikátů a seznamů odvolaných certifikátů (CRL). Další informace o příkazu OpenSSL ca najdete na stránce příručky openssl-ca v dokumentaci k OpenSSL.

    winpty openssl ca -selfsign -config rootca.conf -in rootca.csr -out rootca.crt -extensions ca_ext
    

    Zobrazí se výzva k zadání hesla PEM, jak je znázorněno v následujícím příkladu souboru privátního klíče. Po zadání hesla vygeneruje OpenSSL certifikát a pak vás vyzve k podepsání a potvrzení certifikátu pro kořenovou certifikační autoritu. Zadejte y pro obě výzvy k vygenerování samosignovaného certifikátu pro vaši kořenovou certifikační autoritu.

    Using configuration from rootca.conf
    Enter pass phrase for ../rootca/private/rootca.key:
    Check that the request matches the signature
    Signature ok
    Certificate Details:
        {Details omitted from output for clarity}
    Certificate is to be certified until Mar 24 18:51:41 2033 GMT (3650 days)
    Sign the certificate? [y/n]:
    
    
    1 out of 1 certificate requests certified, commit? [y/n]
    Write out database with 1 new entries
    Database updated
    

    Jakmile OpenSSL aktualizuje databázi certifikátů, ověřte, že soubor certifikátu rootca.crt je přítomen v adresáři rootca a že soubor PEM (.pem) pro certifikát je přítomen v adresáři rootca/certs. Název souboru .pem odpovídá sériovému číslu kořenového certifikátu certifikační autority.

Vytvoření podřízené certifikační autority

Po vytvoření interní kořenové certifikační autority byste měli vytvořit podřízenou certifikační autoritu, která se použije jako zprostředkující certifikační autorita , se kterou chcete podepsat klientské certifikáty pro vaše zařízení. Teoreticky nemusíte vytvářet podřízenou certifikační autoritu; Kořenový certifikát certifikační autority můžete nahrát do centra IoT a podepsat klientské certifikáty přímo z kořenové certifikační autority. Použití podřízené certifikační autority jako zprostředkující certifikační autority k podepisování klientských certifikátů přesněji simuluje doporučené produkční prostředí, ve kterém je kořenová certifikační autorita udržována offline. Podřízenou certifikační autoritu můžete také použít k podepsání jiné podřízené certifikační autority, která pak může podepsat jinou podřízenou certifikační autoritu atd. Použití podřízených certifikačních autorit k podepsání jiných podřízených certifikačních autorit vytvoří hierarchii zprostředkujících certifikačních autorit jako součást řetězu certifikátů důvěryhodnosti. V produkčním prostředí umožňuje řetěz certifikátů důvěryhodnosti delegování důvěryhodnosti na podpisová zařízení. Další informace o přihlašování zařízení do řetězu certifikátů důvěryhodnosti najdete v tématu Ověřování identit pomocí certifikátů X.509.

Podobně jako u kořenové certifikační autority se soubory používané k vytvoření a údržbě podřízené certifikační autority ukládají ve struktuře složek a inicializují se jako součást tohoto procesu. Proveďte následující kroky:

  • Vytvoření a inicializace složek a souborů používaných podřízenou certifikační autoritou
  • Vytvoření konfiguračního souboru používaného aplikací OpenSSL ke konfiguraci podřízené certifikační autority a certifikátů vytvořených s podřízenou certifikační autoritou
  • Vyžádání a vytvoření certifikátu certifikační autority podepsaného kořenovou certifikační autoritou, která slouží jako certifikát podřízené certifikační autority
  1. Vraťte se do základního adresáře, který obsahuje adresář rootca. V tomto příkladu se kořenová a podřízená certifikační autorita nacházejí ve stejném základním adresáři.

    cd ..
    
  2. V okně Git Bash spusťte následující příkazy po jednom.

    Tento krok vytvoří adresářovou strukturu a podpůrné soubory pro podřízenou certifikační autoritu, která se podobá struktuře složek a souborům vytvořeným pro kořenovou certifikační autoritu v předchozí části.

    mkdir subca
    cd subca
    mkdir certs db private
    chmod 700 private
    touch db/index
    openssl rand -hex 16 > db/serial
    echo 1001 > db/crlnumber
    
  3. Vytvořte textový soubor s názvem subca.conf v subca adresáři, který byl vytvořen v předchozím kroku. Otevřete tento soubor v textovém editoru a zkopírujte a uložte do tohoto souboru následující nastavení konfigurace OpenSSL.

    Stejně jako u konfiguračního souboru pro vaši kořenovou certifikační autoritu testu, tento soubor poskytuje OpenSSL hodnoty potřebné ke konfiguraci testovací podřízené CA. Pro správu testovacích scénářů nebo prostředí můžete vytvořit několik podřízených certifikačních autorit.

    Další informace o syntaxi konfiguračních souborů OpenSSL najdete na stránce hlavní předlohy konfigurace v dokumentaci k OpenSSL.

    [default]
    name                     = subca
    domain_suffix            = exampledomain.com
    aia_url                  = http://$name.$domain_suffix/$name.crt
    crl_url                  = http://$name.$domain_suffix/$name.crl
    default_ca               = ca_default
    name_opt                 = utf8,esc_ctrl,multiline,lname,align
    
    [ca_dn]
    commonName               = "subca_common_name"
    
    [ca_default]
    home                     = ../subca
    database                 = $home/db/index
    serial                   = $home/db/serial
    crlnumber                = $home/db/crlnumber
    certificate              = $home/$name.crt
    private_key              = $home/private/$name.key
    RANDFILE                 = $home/private/random
    new_certs_dir            = $home/certs
    unique_subject           = no
    copy_extensions          = copy
    default_days             = 365
    default_crl_days         = 90
    default_md               = sha256
    policy                   = policy_c_o_match
    
    [policy_c_o_match]
    countryName              = optional
    stateOrProvinceName      = optional
    organizationName         = optional
    organizationalUnitName   = optional
    commonName               = supplied
    emailAddress             = optional
    
    [req]
    default_bits             = 2048
    encrypt_key              = yes
    default_md               = sha256
    utf8                     = yes
    string_mask              = utf8only
    prompt                   = no
    distinguished_name       = ca_dn
    req_extensions           = ca_ext
    
    [ca_ext]
    basicConstraints         = critical,CA:true
    keyUsage                 = critical,keyCertSign,cRLSign
    subjectKeyIdentifier     = hash
    
    [sub_ca_ext]
    authorityKeyIdentifier   = keyid:always
    basicConstraints         = critical,CA:true,pathlen:0
    extendedKeyUsage         = clientAuth,serverAuth
    keyUsage                 = critical,keyCertSign,cRLSign
    subjectKeyIdentifier     = hash
    
    [client_ext]
    authorityKeyIdentifier   = keyid:always
    basicConstraints         = critical,CA:false
    extendedKeyUsage         = clientAuth
    keyUsage                 = critical,digitalSignature
    subjectKeyIdentifier     = hash
    
  4. V okně Git Bash spusťte následující příkazy, které vygenerují privátní klíč a žádost o podepsání certifikátu (CSR) v adresáři podřízené certifikační autority.

    winpty openssl req -new -config subca.conf -out subca.csr -keyout private/subca.key
    

    Zobrazí se výzva k zadání hesla PEM, jak je znázorněno v následujícím příkladu souboru privátního klíče. Zadejte a ověřte předávací frázi pro vygenerování privátního klíče a CSR.

    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
    -----
    

    Ověřte, že soubor subca.csr CSR je v adresáři podřízené certifikační autority. Než budete pokračovat, potvrďte, že soubor privátního subca.key klíče private je v podadresáři.

  5. V okně Git Bash spusťte následující příkaz, který vytvoří certifikát podřízené certifikační autority v adresáři podřízené certifikační autority. Příkaz použije rozšíření sub_ca_ext konfiguračního souboru k certifikátu. Tato rozšíření označují, že certifikát je určený pro podřízenou certifikační autoritu a dá se použít také k podepisování certifikátů a seznamů odvolaných certifikátů (CRL). Na rozdíl od kořenového certifikátu certifikační autority tento certifikát není podepsaný svým držitelem. Místo toho je certifikát podřízené certifikační autority podepsaný kořenovým certifikátem certifikační autority a vytvoří řetěz certifikátů podobný tomu, co byste použili pro infrastrukturu veřejných klíčů (PKI). Certifikát podřízené certifikační autority se pak použije k podepsání klientských certifikátů pro testování zařízení.

    winpty openssl ca -config ../rootca/rootca.conf -in subca.csr -out subca.crt -extensions sub_ca_ext
    

    Zobrazí se výzva k zadání hesla, jak je znázorněno v následujícím příkladu souboru privátního klíče kořenové certifikační autority. Po zadání hesla vygeneruje OpenSSL a zobrazí podrobnosti certifikátu a pak vás vyzve k podepsání a potvrzení certifikátu pro podřízenou certifikační autoritu. Zadejte y pro obě výzvy k vygenerování certifikátu pro vaši podřízenou certifikační autoritu.

    Using configuration from rootca.conf
    Enter pass phrase for ../rootca/private/rootca.key:
    Check that the request matches the signature
    Signature ok
    Certificate Details:
        {Details omitted from output for clarity}
    Certificate is to be certified until Mar 24 18:55:00 2024 GMT (365 days)
    Sign the certificate? [y/n]:
    
    
    1 out of 1 certificate requests certified, commit? [y/n]
    Write out database with 1 new entries
    Database updated
    

    Po aktualizaci databáze certifikátů OpenSSL ověřte, že je soubor subca.crt certifikátu v adresáři podřízené certifikační autority. Pak ověřte, že soubor certifikátu PEM (.pem) certifikátu je v rootca/certs adresáři. Název souboru .pem odpovídá sériovému číslu certifikátu podřízené certifikační autority.

Registrace subordinátního CA certifikátu ve vašem IoT hubu

Zaregistrujte certifikát podřízené certifikační autority do centra IoT, který ho používá k ověření zařízení během registrace a připojení. Následující kroky popisují, jak nahrát a automaticky ověřit certifikát podřízené certifikační autority do centra IoT.

  1. Na webu Azure Portal přejděte do centra IoT a v nabídce prostředků vyberte Certifikáty v části Nastavení zabezpečení.

  2. Vyberte Přidat z panelu příkazů a přidejte nový certifikát certifikační autority.

  3. Do pole Název certifikátu zadejte zobrazovaný název certifikátu podřízené certifikační autority .

  4. Vyberte soubor s PEM certifikátem (.pem) své podřízené certifikační autority z adresáře rootca/certs k přidání do pole Soubor certifikátu .pem nebo .cer.

  5. Zaškrtněte políčko vedle položky Nastavit stav certifikátu tak, aby se ověřil při nahrání.

    Snímek obrazovky znázorňující, jak automaticky ověřit stav certifikátu při nahrání

  6. Vyberte Uložit.

Nahraný certifikát podřízené certifikační autority se zobrazí s jeho stavem nastaveným na Ověřeno na kartě Certifikáty v pracovním podokně.

Vytvoření klientského certifikátu pro zařízení

Po vytvoření podřízené certifikační autority můžete vytvořit klientské certifikáty pro vaše zařízení. Soubory a složky vytvořené pro podřízenou certifikační autoritu se používají k ukládání souborů CSR, privátního klíče a certifikátů pro klientské certifikáty.

Klientský certifikát musí mít hodnotu pole Běžný název subjektu (CN) nastavenou na hodnotu ID zařízení, které se používá při registraci odpovídajícího zařízení v Azure IoT Hubu.

Proveďte následující kroky:

  • Vytvoření privátního klíče a žádosti o podepsání certifikátu (CSR) pro klientský certifikát
  • Vytvoření klientského certifikátu podepsaného certifikátem podřízené certifikační autority
  1. V okně Git Bash se ujistěte, že jste stále v subca adresáři.

  2. V okně Git Bash spusťte následující příkazy po jednom. Zástupný symbol nahraďte názvem vašeho zařízení IoT, například testdevice. Tento krok vytvoří privátní klíč a CSR pro váš klientský certifikát.

    Tento krok vytvoří 2048bitový privátní klíč RSA pro váš klientský certifikát a potom vygeneruje žádost o podepsání certifikátu (CSR) pomocí tohoto privátního klíče.

    winpty openssl genpkey -out private/<DEVICE_NAME>.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048
    winpty openssl req -new -key private/<DEVICE_NAME>.key -out <DEVICE_NAME>.csr
    
  3. Po zobrazení výzvy zadejte podrobnosti o certifikátu, jak je znázorněno v následujícím příkladu.

    Jedinou výzvou, pro kterou musíte zadat konkrétní hodnotu, je Běžný název, což musí být stejný název zařízení, který jste zadali v předchozím kroku. Zbývající výzvy můžete přeskočit nebo zadat libovolné hodnoty.

    Po zadání podrobností o certifikátu OpenSSL vygeneruje a zobrazí podrobnosti certifikátu a vyzve vás k podepsání a potvrzení certifikátu pro podřízenou CA. Zadejte y pro obě výzvy k vygenerování certifikátu pro podřízenou certifikační autoritu.

    -----
    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) []:'<DEVICE_NAME>'
    Email Address []:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    
    

    Ověřte, že soubor CSR je v adresáři podřízené certifikační autority. Než budete pokračovat, potvrďte, že soubor privátního private klíče je v podadresáři. Další informace o formátech souborů CSR a privátního klíče naleznete v tématu Certifikáty X.509.

  4. V okně Git Bash spusťte následující příkaz a nahraďte zástupné symboly názvu zařízení stejným názvem, který jste použili v předchozích krocích.

    Tento krok vytvoří klientský certifikát v adresáři podřízené certifikační autority. Příkaz použije rozšíření client_ext konfiguračního souboru k certifikátu. Tato rozšíření označují, že certifikát je určený pro klientský certifikát, který nejde použít jako certifikát certifikační autority. Klientský certifikát je podepsaný certifikátem podřízené certifikační autority.

    winpty openssl ca -config subca.conf -in <DEVICE_NAME>.csr -out <DEVICE_NAME>.crt -extensions client_ext
    

    Zobrazí se výzva k zadání hesla, jak je znázorněno v následujícím příkladu souboru privátního klíče podřízené certifikační autority. Po zadání hesla vygeneruje OpenSSL a zobrazí podrobnosti o certifikátu a zobrazí výzvu k podepsání a potvrzení klientského certifikátu pro vaše zařízení. Zadejte y pro obě výzvy k vygenerování klientského certifikátu.

    Using configuration from subca.conf
    Enter pass phrase for ../subca/private/subca.key:
    Check that the request matches the signature
    Signature ok
    Certificate Details:
        {Details omitted from output for clarity}
    Certificate is to be certified until Mar 24 18:51:41 2024 GMT (365 days)
    Sign the certificate? [y/n]:
    
    
    1 out of 1 certificate requests certified, commit? [y/n]
    Write out database with 1 new entries
    Database updated
    

    Po aktualizaci knihovny OpenSSL databáze certifikátů ověřte, že soubor certifikátu pro klientský certifikát je v adresáři podřízené certifikační autority. Pak ověřte, že soubor certifikátu PEM (.pem) pro klientský certifikát je v podadresáři certifikátů podřízených certifikačních autorit. Název souboru .pem odpovídá sériovému číslu klientského certifikátu.

Další kroky

Zařízení můžete zaregistrovat ve službě IoT Hub pro testování klientského certifikátu, který jste pro toto zařízení vytvořili. Další informace o registraci zařízení najdete v tématu Vytváření a správa identit zařízení.

Pokud máte k testování více souvisejících zařízení, můžete pomocí služby Azure IoT Hub Device Provisioning zřídit více zařízení ve skupině registrací. Další informace o používání skupin registrací ve službě Device Provisioning najdete v tématu Kurz: Zřízení více zařízení X.509 pomocí skupin registrací.