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í certifikační autority (CA) spravované svým držitelem zřetězený s zakoupeným certifikátem certifikační autority jako součást komplexní strategie infrastruktury veřejných klíčů (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í. Privátní certifikační autorita spravovaná samostatně s alespoň jednou podřízenou certifikační autoritou zřetězeným s interní kořenovou certifikační autoritou s klientskými certifikáty pro vaše zařízení podepsaná podřízenými certifikačními autoritami umožňuje simulovat doporučené produkční prostředí.

Důležité

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ření interní kořenové certifikační autority (CA) a certifikátu kořenové certifikační autority
  • Vytvoření interního certifikátu podřízené certifikační autority a podřízené certifikační autority podepsaného certifikátem interní kořenové certifikační autority
  • Nahrání certifikátu podřízené certifikační autority do centra IoT pro účely testování
  • Vytvoření klientských certifikátů pro zařízení IoT, která chcete testovat pomocí centra IoT, použijte podřízenou certifikační autoritu.

Poznámka:

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í sady AZURE IoT Hub Device SDK pro jazyk C. Skripty 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.

Požadavky

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

  • 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ší verzi nástrojů pro instalaci, včetně Git Bashu, aplikace příkazového řádku, kterou můžete použít k interakci s místním úložištěm Git, najdete v klientských nástrojích 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.

    Poznámka:

    Pokud neznáte OpenSSL a už ho máte 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 openSSL předdefinovaný od jiného výrobce. 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 binární soubor OpenSSL je přístupný ve vaší cestě a že OPENSSL_CNF proměnná prostředí je nastavená na cestu k souboru openssl.cnf .

Vytvoření kořenové certifikační autority

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 tyto 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žádání a vytvoření certifikátu certifikační autority podepsaného svým držitelem, který slouží jako certifikát kořenové 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 Popis
    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 podmíněného přístupu 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 kořenové certifikační autority, podřízené certifikáty certifikační autority a klientské certifikáty vydané kořenovou certifikační autoritou

    Poznámka:

    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.

    Poznámka:

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

    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:
    -----
    

    Než budete pokračovat, rootca.keypotvrďte, rootca.csrže soubor CSR, je v rootca adresáři a v souboru privátního private klíče, který se nachází v 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 přípony konfiguračního ca_ext souboru na certifikát. 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í certifikátu podepsaného svým držitelem pro 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
    Data Base Updated
    

    Jakmile OpenSSL aktualizuje databázi certifikátů, ověřte, rootca.crtže v adresáři existuje rootca soubor certifikátu , a soubor certifikátu PEM (.pem) pro certifikát je v rootca/certs adresáři. 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í zařízení pomocí certifikátů certifikační autority 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 tyto 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ý tento adresář obsahuje 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 podřízené certifikační autority podobné 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 poskytuje tento soubor hodnoty OpenSSL s hodnotami potřebnými ke konfiguraci testovací podřízené certifikační autority. 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:
    -----
    

    Než budete pokračovat, ověřte, že soubor subca.csr CSR existuje v adresáři podřízené certifikační autority a soubor subca.key privátního private klíče 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 přípony konfiguračního sub_ca_ext souboru na certifikát. 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 obě výzvy k vygenerování certifikátu pro 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
    Data Base Updated
    

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

Registrace certifikátu podřízené certifikační autority do centra IoT

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. V adresáři vyberte soubor certifikátu PEM (.pem) certifikátu podřízené certifikační autority rootca/certs , který chcete přidat 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. Zvolte 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 pro svá zařízení vytvořit klientské certifikáty. 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 tyto 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 SesSL vygeneruje a zobrazí podrobnosti certifikátu a zobrazí výzvu 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 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 []:
    
    

    Než budete pokračovat, ověřte, že soubor CSR existuje v adresáři podřízené certifikační autority a 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 přípony konfiguračního client_ext souboru na certifikát. 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
    Data Base 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 a že soubor certifikátu PEM (.pem) pro klientský certifikát je v podadresáři certifikátů podřízené certifikační autority . 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í.