Oktatóanyag: Tanúsítványok létrehozása és feltöltése teszteléshez

X.509-tanúsítványokkal hitelesítheti az eszközöket az IoT Hubon. Éles környezetekben javasoljuk, hogy vásároljon egy X.509-es hitelesítésszolgáltatói tanúsítványt egy professzionális tanúsítványszolgáltatótól. Ezután egy átfogó nyilvános kulcsú infrastruktúra (PKI) stratégia részeként kibocsáthat tanúsítványokat a szervezeten belül egy belső, ön által felügyelt hitelesítésszolgáltatótól (CA), amely a megvásárolt hitelesítésszolgáltatói tanúsítványhoz van láncolt. Az X.509 hitelesítésszolgáltatói tanúsítvány professzionális tanúsítványszolgáltatótól való beszerzéséről további információt az X.509 hitelesítésszolgáltatói tanúsítványt használó eszközök X.509 hitelesítésszolgáltatói tanúsítványánakbeszerzése című szakaszában talál.

Azonban a belső legfelső szintű hitelesítésszolgáltatót használó saját, ön által felügyelt magánhálózati hitelesítésszolgáltató létrehozása a megbízhatósági horgonyként megfelelő a környezetek teszteléséhez. A belső legfelső szintű hitelesítésszolgáltatóhoz láncolt legalább egy alárendelt hitelesítésszolgáltatóval rendelkező, ön által felügyelt magánhálózati hitelesítésszolgáltató az alárendelt hitelesítésszolgáltatók által aláírt eszközök ügyféltanúsítványaival lehetővé teszi egy ajánlott éles környezet szimulálásához.

Fontos

Nem javasoljuk az önaláírt tanúsítványok használatát éles környezetekben. Ez az oktatóanyag csak bemutató célokra jelenik meg.

Az alábbi oktatóanyag az OpenSSL-t és az OpenSSL-szakácskönyvet használja az alábbi feladatok elvégzésének leírására:

  • Belső főtanúsítvány-szolgáltató (CA) és legfelső szintű hitelesítésszolgáltatói tanúsítvány létrehozása
  • Belső alárendelt hitelesítésszolgáltatói és alárendelt hitelesítésszolgáltatói tanúsítvány létrehozása a belső legfelső szintű hitelesítésszolgáltató tanúsítványával aláírva
  • Az alárendelt hitelesítésszolgáltatói tanúsítvány feltöltése az IoT Hubra tesztelési célból
  • Az alárendelt hitelesítésszolgáltató használatával hozzon létre ügyféltanúsítványokat az IoT Hubbal tesztelni kívánt IoT-eszközökhöz

Feljegyzés

A Microsoft PowerShell- és Bash-szkriptekkel segít megérteni, hogyan hozhat létre saját X.509-tanúsítványokat, és hogyan hitelesítheti őket egy IoT Hubon. A szkriptek a C-hez készült Azure IoT Hub Device SDK részét képezik. A szkriptek csak bemutató célokra vannak megadva. Az általuk létrehozott tanúsítványok nem használhatók éles környezetben. A tanúsítványok szigorúan kódolt jelszavakat ("1234") tartalmaznak, és 30 nap után lejárnak. A tanúsítványlétrehozáshoz és az élettartam-kezeléshez saját ajánlott eljárásokat kell használnia éles környezetben. További információ: A C-hez készült Azure IoT Hub Device SDK GitHub-adattárában található minták és oktatóanyagok hitelesítésszolgáltatói tanúsítványainak kezelése.

Előfeltételek

  • Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

  • IoT Hub az Azure-előfizetésben. Ha még nem rendelkezik központokkal, kövesse az IoT Hub létrehozása című témakörben leírt lépéseket.

  • A Git legújabb verziója. Győződjön meg arról, hogy a Git hozzá van adva a parancsablakhoz elérhető környezeti változókhoz. Tekintse meg a Software Freedom Conservancy Git-ügyféleszközeit a telepíteni kívánt eszközök legújabb verziójához git , amely tartalmazza a Git Basht, a helyi Git-adattárral való interakcióhoz használható parancssori alkalmazást.

  • OpenSSL-telepítés. Windows rendszeren a Git telepítése tartalmazza az OpenSSL telepítését. Az OpenSSL-t a Git Bash-parancssorból érheti el. Az OpenSSL telepítésének ellenőrzéséhez nyisson meg egy Git Bash-parancssort, és írja be a következőt openssl version:

    Feljegyzés

    Ha nem ismeri az OpenSSL-t, és már telepítve van a Windows rendszerű gépére, javasoljuk, hogy használja az OpenSSL-t a Git Bash-parancssorból. Másik lehetőségként letöltheti a forráskódot, és létrehozhatja az OpenSSL-t. További információt az OpenSSL Letöltések oldalán talál. Vagy letöltheti az előre elkészített OpenSSL-t egy harmadik féltől. További információért tekintse meg az OpenSSL wikit. A Microsoft nem vállal garanciát a harmadik felektől letöltött csomagok érvényességére. Ha az OpenSSL létrehozása vagy letöltése mellett dönt, győződjön meg arról, hogy az OpenSSL bináris elérhető az elérési úton, és hogy a OPENSSL_CNF környezeti változó az opensl.cnf fájl elérési útjára van állítva.

Legfelső szintű hitelesítésszolgáltató létrehozása

Először létre kell hoznia egy belső főtanúsítvány-szolgáltatót és egy önaláírt legfelső szintű hitelesítésszolgáltatói tanúsítványt, amely megbízhatósági horgonyként szolgál, amelyből más tanúsítványokat is létrehozhat teszteléshez. A belső legfelső szintű hitelesítésszolgáltató létrehozásához és karbantartásához használt fájlok mappastruktúrában vannak tárolva, és a folyamat részeként inicializálódnak. Hajtsa végre a következő lépéseket:

  • A legfelső szintű hitelesítésszolgáltató által használt mappák és fájlok létrehozása és inicializálása
  • Hozzon létre egy konfigurációs fájlt, amelyet az OpenSSL használ a legfelső szintű hitelesítésszolgáltató és a legfelső szintű hitelesítésszolgáltatóval létrehozott tanúsítványok konfigurálásához
  • A legfelső szintű hitelesítésszolgáltatói tanúsítványként szolgáló önaláírt hitelesítésszolgáltatói tanúsítvány kérése és létrehozása
  1. Indítsa el a Git Bash-ablakot, és futtassa a következő parancsot, és cserélje le {base_dir} azt a kívánt könyvtárat, amelyben az oktatóanyagban létre szeretné hozni a tanúsítványokat.

    cd {base_dir}
    
  2. A Git Bash ablakban futtassa a következő parancsokat egyenként. Ez a lépés a következő címtárstruktúrát és támogatási fájlokat hozza létre a legfelső szintű hitelesítésszolgáltató számára.

    Könyvtár vagy fájl Leírás
    rootca A legfelső szintű hitelesítésszolgáltató gyökérkönyvtára.
    rootca/certs Az a könyvtár, amelyben a legfelső szintű hitelesítésszolgáltató hitelesítésszolgáltatói tanúsítványai létrejönnek és tárolódnak.
    rootca/db Az a könyvtár, amelyben a tanúsítványadatbázis és a legfelső szintű hitelesítésszolgáltató támogatási fájljai vannak tárolva.
    rootca/db/index A legfelső szintű hitelesítésszolgáltató tanúsítvány-adatbázisa. A touch parancs tartalom nélkül hoz létre egy fájlt későbbi használatra. A tanúsítványadatbázis az OpenSSL által kezelt egyszerű szöveges fájl, amely a kibocsátott tanúsítványokra vonatkozó információkat tartalmazza. A tanúsítvány-adatbázissal kapcsolatos további információkért tekintse meg az openssl-ca manuális oldalát.
    rootca/db/serial A legfelső szintű hitelesítésszolgáltatóhoz létrehozandó következő tanúsítvány sorozatszámának tárolására szolgáló fájl. A openssl parancs egy 16 bájtos véletlenszerű számot hoz létre hexadecimális formátumban, majd ebben a fájlban tárolja, hogy inicializálja a fájlt a legfelső szintű hitelesítésszolgáltatói tanúsítvány létrehozásához.
    rootca/db/crlnumber A fő hitelesítésszolgáltató által kiadott visszavont tanúsítványok sorozatszámainak tárolására szolgáló fájl. A echo parancs egy 1001-es minta sorozatszámot illeszt be a fájlba.
    rootca/private Az a könyvtár, amelyben a legfelső szintű hitelesítésszolgáltató privát fájljai, beleértve a titkos kulcsot is, tárolódik.
    A könyvtárban lévő fájlokat védeni és védeni kell.
    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. Hozzon létre egy, az rootca előző lépésben létrehozott könyvtárban elnevezett rootca.conf szövegfájlt. Nyissa meg a fájlt egy szövegszerkesztőben, majd másolja és mentse a következő OpenSSL konfigurációs beállításokat ebbe a fájlba.

    A fájl biztosítja az OpenSSL-t a tesztgyökér hitelesítésszolgáltatójának konfigurálásához szükséges értékekkel. Ebben a példában a fájl egy rootca nevű legfelső szintű hitelesítésszolgáltatót konfigurál az előző lépésekben létrehozott könyvtárak és fájlok használatával. A fájl a következő konfigurációs beállításokat is biztosítja:

    • A legfelső szintű hitelesítésszolgáltató által a tanúsítvány megkülönböztető neve (DN) mezőihez használt ca-házirend
    • A legfelső szintű hitelesítésszolgáltató által létrehozott tanúsítványkérelmek
    • A legfelső szintű hitelesítésszolgáltatói tanúsítványokra, az alárendelt hitelesítésszolgáltatói tanúsítványokra és a legfelső szintű hitelesítésszolgáltató által kibocsátott ügyféltanúsítványokra alkalmazott X.509-bővítmények

    Feljegyzés

    A home szakasz attribútuma ca_default azért van beállítva ../rootca , mert ez a konfigurációs fájl az alárendelt hitelesítésszolgáltató tanúsítványának létrehozásakor is használatos. A megadott relatív elérési út lehetővé teszi az OpenSSL számára, hogy a folyamat során az alárendelt ca-mappából a legfelső szintű hitelesítésszolgáltató mappájába navigáljon.

    Az OpenSSL-konfigurációs fájlok szintaxisával kapcsolatos további információkért tekintse meg az OpenSSL dokumentációjának konfigurációs kézikönyvét.

    [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. A Git Bash ablakban futtassa a következő parancsot egy tanúsítvány-aláírási kérelem (CSR) létrehozásához a rootca könyvtárban és egy titkos kulcs létrehozásához a rootca/private címtárban. Az OpenSSL req paranccsal kapcsolatos további információkért tekintse meg az OpenSSL dokumentációjának OpenSL-dokumentációjának opensl-req manuális oldalát.

    Feljegyzés

    Annak ellenére, hogy ez a legfelső szintű hitelesítésszolgáltató tesztelési célokra készült, és nem lesz nyilvános kulcsú infrastruktúra (PKI) részeként közzétéve, javasoljuk, hogy ne másolja vagy ossza meg a titkos kulcsot.

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

    A rendszer kérni fogja, hogy adjon meg egy PEM-pass kifejezést, ahogyan az az alábbi példában látható, a titkos kulcsfájlhoz. Adjon meg és erősítse meg a titkos kulcs és a CSR létrehozásához használt pass-kifejezést.

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

    A folytatás előtt győződjön meg arról, rootca.csrhogy a CSR-fájl jelen van a rootca könyvtárban és a titkos kulcsfájlbanrootca.key.private

  5. A Git Bash ablakban futtassa a következő parancsot egy önaláírt legfelső szintű hitelesítésszolgáltatói tanúsítvány létrehozásához. A parancs a ca_ext konfigurációs fájlkiterjesztéseket alkalmazza a tanúsítványra. Ezek a bővítmények azt jelzik, hogy a tanúsítvány egy legfelső szintű hitelesítésszolgáltatóhoz tartozik, és a tanúsítványok és a visszavont tanúsítványok listájának aláírására használható. Az OpenSSL ca paranccsal kapcsolatos további információkért tekintse meg az OpenSSL dokumentációjának opensl-ca manuális oldalát.

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

    A rendszer kérni fogja, hogy adja meg a PEM-pass kifejezést, ahogyan az az alábbi példában látható, a titkos kulcsfájlhoz. A hozzáférési kifejezés megadása után az OpenSSL létrehoz egy tanúsítványt, majd megkéri, hogy írja alá és véglegesítse a tanúsítványt a legfelső szintű hitelesítésszolgáltató számára. Adja meg az y értéket, hogy mindkét kérés létrehozza az önaláírt tanúsítványt a legfelső szintű hitelesítésszolgáltatóhoz.

    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
    

    Miután az OpenSSL frissítette a tanúsítvány-adatbázist, győződjön meg arról, hogy mindkét tanúsítványfájl megtalálható a rootca címtárban, rootca.crtés a tanúsítvány PEM-tanúsítványfájlja (.pem) is megtalálható a rootca/certs könyvtárban. A .pem fájl neve megegyezik a legfelső szintű hitelesítésszolgáltatói tanúsítvány sorozatszámával.

Alárendelt hitelesítésszolgáltató létrehozása

Miután létrehozta a belső legfelső szintű hitelesítésszolgáltatót, létre kell hoznia egy alárendelt hitelesítésszolgáltatót, amely köztes hitelesítésszolgáltatóként használható, amellyel ügyféltanúsítványokat írhat alá az eszközei számára. Elméletileg nem kell alárendelt hitelesítésszolgáltatót létrehoznia; Feltöltheti a legfelső szintű hitelesítésszolgáltatói tanúsítványt az IoT Hubra, és közvetlenül a legfelső szintű hitelesítésszolgáltatótól aláírhatja az ügyféltanúsítványokat. Ha azonban egy alárendelt hitelesítésszolgáltatót köztes hitelesítésszolgáltatóként használ az ügyféltanúsítványok aláírásához, az egy ajánlott éles környezetet szimulál, amelyben a legfelső szintű hitelesítésszolgáltató offline állapotban van. Egy alárendelt hitelesítésszolgáltatóval is aláírhat egy másik alárendelt hitelesítésszolgáltatót, amely viszont egy másik alárendelt hitelesítésszolgáltatót is aláírhat, és így tovább. Ha alárendelt hitelesítésszolgáltatókat használ az alárendelt hitelesítésszolgáltatók aláírására, akkor a megbízhatósági tanúsítványlánc részeként létrehoz egy köztes hitelesítésszolgáltatók hierarchiáját. Éles környezetben a megbízhatósági tanúsítványlánc lehetővé teszi a megbízhatóság delegálását az aláíró eszközök felé. Az eszközök megbízhatósági tanúsítványláncba való aláírásával kapcsolatos további információkért lásd : Eszközök hitelesítése X.509 hitelesítésszolgáltatói tanúsítványokkal.

A legfelső szintű hitelesítésszolgáltatóhoz hasonlóan az alárendelt hitelesítésszolgáltató létrehozásához és karbantartásához használt fájlok mappastruktúrában vannak tárolva, és a folyamat részeként inicializálódnak. Hajtsa végre a következő lépéseket:

  • Az alárendelt hitelesítésszolgáltató által használt mappák és fájlok létrehozása és inicializálása
  • Hozzon létre egy konfigurációs fájlt, amelyet az OpenSSL használ az alárendelt hitelesítésszolgáltató és az alárendelt hitelesítésszolgáltatóval létrehozott tanúsítványok konfigurálásához
  • A legfelső szintű hitelesítésszolgáltató által aláírt hitelesítésszolgáltatói tanúsítvány kérése és létrehozása, amely az alárendelt hitelesítésszolgáltatói tanúsítványként szolgál
  1. Térjen vissza a könyvtárat tartalmazó alapkönyvtárhoz rootca . Ebben a példában a legfelső szintű hitelesítésszolgáltató és az alárendelt hitelesítésszolgáltató is ugyanabban az alapkönyvtárban található.

    cd ..
    
  2. A Git Bash ablakban futtassa a következő parancsokat egyenként.

    Ez a lépés az előző szakaszban a legfelső szintű hitelesítésszolgáltató számára létrehozott mappastruktúrához és fájlokhoz hasonló címtárstruktúrát és támogatási fájlokat hoz létre az alárendelt hitelesítésszolgáltató számára.

    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. Hozzon létre egy, az subca előző lépésben létrehozott könyvtárban elnevezett subca.conf szövegfájlt. Nyissa meg a fájlt egy szövegszerkesztőben, majd másolja és mentse a következő OpenSSL konfigurációs beállításokat ebbe a fájlba.

    A tesztgyökerű hitelesítésszolgáltató konfigurációs fájljához hasonlóan ez a fájl is biztosítja az OpenSSL-t a teszt alárendelt hitelesítésszolgáltatójának konfigurálásához szükséges értékekkel. Több alárendelt hitelesítésszolgáltatót is létrehozhat tesztelési forgatókönyvek vagy környezetek kezeléséhez.

    Az OpenSSL-konfigurációs fájlok szintaxisával kapcsolatos további információkért tekintse meg az OpenSSL dokumentációjának konfigurációs mesteroldalát.

    [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. A Git Bash ablakban futtassa az alábbi parancsokat egy titkos kulcs és egy tanúsítvány-aláírási kérelem (CSR) létrehozásához az alárendelt CA-címtárban.

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

    A rendszer kérni fogja, hogy adjon meg egy PEM-pass kifejezést, ahogyan az az alábbi példában látható, a titkos kulcsfájlhoz. Adjon meg és ellenőrizze a titkos kulcs és a CSR létrehozásához használt pass-kifejezést.

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

    A folytatás előtt ellenőrizze, hogy a CSR-fájl subca.csr megtalálható-e az alárendelt hitelesítésszolgáltató könyvtárában, és hogy a titkos kulcsfájl subca.key megtalálható-e az private alkönyvtárban.

  5. A Git Bash ablakban futtassa a következő parancsot egy alárendelt hitelesítésszolgáltatói tanúsítvány létrehozásához az alárendelt CA-címtárban. A parancs a sub_ca_ext konfigurációs fájlkiterjesztéseket alkalmazza a tanúsítványra. Ezek a bővítmények azt jelzik, hogy a tanúsítvány egy alárendelt hitelesítésszolgáltatóhoz tartozik, és a tanúsítványok és a visszavont tanúsítványok listájának aláírására is használható. A fő hitelesítésszolgáltatói tanúsítvánnyal ellentétben ez a tanúsítvány nem önaláírt. Ehelyett az alárendelt hitelesítésszolgáltatói tanúsítvány a legfelső szintű hitelesítésszolgáltatói tanúsítvánnyal van aláírva, és a nyilvános kulcsú infrastruktúra (PKI) által használthoz hasonló tanúsítványláncot hoz létre. Az alárendelt hitelesítésszolgáltatói tanúsítvány ezután az ügyféltanúsítványok aláírására szolgál az eszközök teszteléséhez.

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

    A rendszer kéri, hogy adja meg a hozzáférési kifejezést, ahogyan az a következő példában látható, a legfelső szintű hitelesítésszolgáltató titkos kulcsfájljához. A hitelesítő kifejezés megadása után az OpenSSL létrehozza és megjeleníti a tanúsítvány részleteit, majd megkéri, hogy írja alá és véglegesítse a tanúsítványt az alárendelt hitelesítésszolgáltató számára. Adja meg y , hogy mindkét kérés létrehozza a tanúsítványt az alárendelt hitelesítésszolgáltató számára.

    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
    

    Miután az OpenSSL frissítette a tanúsítvány-adatbázist, ellenőrizze, hogy a tanúsítványfájl subca.crt megtalálható-e az alárendelt hitelesítésszolgáltató könyvtárában, és hogy a tanúsítvány PEM-tanúsítványfájlja (.pem) megtalálható-e a rootca/certs címtárban. A .pem fájl neve megegyezik az alárendelt hitelesítésszolgáltatói tanúsítvány sorozatszámával.

Az alárendelt hitelesítésszolgáltatói tanúsítvány regisztrálása az IoT Hubon

Regisztrálja az alárendelt hitelesítésszolgáltatói tanúsítványt az IoT Hubon, amely az eszközök hitelesítésére használja a regisztráció és a kapcsolat során. Az alábbi lépések bemutatják, hogyan töltheti fel és ellenőrizheti automatikusan az alárendelt hitelesítésszolgáltatói tanúsítványt az IoT Hubra.

  1. Az Azure Portalon lépjen az IoT Hubra, és válassza a Tanúsítványok lehetőséget az erőforrás menüjében, a Biztonsági beállítások területen.

  2. Új hitelesítésszolgáltatói tanúsítvány hozzáadásához válassza a Hozzáadás lehetőséget a parancssávon.

  3. Adja meg az alárendelt hitelesítésszolgáltatói tanúsítvány megjelenítendő nevét a Tanúsítványnév mezőben.

  4. Válassza ki az alárendelt hitelesítésszolgáltatói tanúsítvány PEM-tanúsítványfájlját (.pem) a címtárból a rootca/certsTanúsítvány .pem vagy .cer fájlmezőbe való felvételhez.

  5. Jelölje be a tanúsítvány állapotának ellenőrzése a feltöltéskor jelölőnégyzetet.

    Képernyőkép a tanúsítvány állapotának automatikus ellenőrzéséről a feltöltés során.

  6. Válassza a Mentés lehetőséget.

A feltöltött alárendelt hitelesítésszolgáltatói tanúsítvány ellenőrzött állapottal jelenik meg a munkaablak Tanúsítványok lapján.

Ügyféltanúsítvány létrehozása egy eszközhöz

Miután létrehozta az alárendelt hitelesítésszolgáltatót, létrehozhat ügyféltanúsítványokat az eszközeihez. Az alárendelt hitelesítésszolgáltató számára létrehozott fájlok és mappák az ügyféltanúsítványok CSR-, titkoskulcs- és tanúsítványfájljainak tárolására szolgálnak.

Az ügyféltanúsítványnak rendelkeznie kell a tulajdonos közös neve (CN) mező értékével annak az eszközazonosítónak az értékével, amelyet a megfelelő eszköz Azure IoT Hubban való regisztrálásakor használnak.

Hajtsa végre a következő lépéseket:

  • Titkos kulcs és tanúsítvány-aláírási kérelem (CSR) létrehozása ügyféltanúsítványhoz
  • Az alárendelt hitelesítésszolgáltatói tanúsítvány által aláírt ügyféltanúsítvány létrehozása
  1. A Git Bash-ablakban győződjön meg arról, hogy még a subca könyvtárban van.

  2. A Git Bash ablakban futtassa egyenként a következő parancsokat. Cserélje le a helyőrzőt például az IoT-eszköz testdevicenevére. Ez a lépés létrehozza az ügyféltanúsítvány titkos kulcsát és CSR-ét.

    Ez a lépés létrehoz egy 2048 bites RSA titkos kulcsot az ügyféltanúsítványhoz, majd létrehoz egy tanúsítvány-aláírási kérelmet (CSR) ezzel a titkos kulccsal.

    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. Amikor a rendszer kéri, adja meg a tanúsítvány részleteit az alábbi példában látható módon.

    Az egyetlen kérés, amelynek egy konkrét értéket kell megadnia, a Köznév, amelynek meg kell egyeznie az előző lépésben megadott eszköznévvel. A többi kérdéshez kihagyhat vagy megadhat tetszőleges értékeket.

    A tanúsítvány részleteinek megadása után az OpenSSL létrehozza és megjeleníti a tanúsítvány részleteit, majd megkéri, hogy írja alá és véglegesítse a tanúsítványt az alárendelt hitelesítésszolgáltató számára. Adja meg az y értéket, hogy mindkét kérés létrehozza az alárendelt hitelesítésszolgáltató tanúsítványát.

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

    A folytatás előtt ellenőrizze, hogy a CSR-fájl megtalálható-e az alárendelt hitelesítésszolgáltató könyvtárában, és hogy a titkos kulcsfájl megtalálható-e az private alkönyvtárban. A CSR és a titkos kulcsfájlok formátumáról további információt az X.509-tanúsítványokban talál.

  4. A Git Bash ablakban futtassa a következő parancsot, és cserélje le az eszköznév helyőrzőit az előző lépésekben használt névre.

    Ez a lépés létrehoz egy ügyféltanúsítványt az alárendelt hitelesítésszolgáltatói címtárban. A parancs a client_ext konfigurációs fájlkiterjesztéseket alkalmazza a tanúsítványra. Ezek a bővítmények azt jelzik, hogy a tanúsítvány egy ügyféltanúsítványhoz tartozik, amely nem használható hitelesítésszolgáltatói tanúsítványként. Az ügyféltanúsítvány az alárendelt hitelesítésszolgáltatói tanúsítvánnyal van aláírva.

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

    A rendszer kérni fogja, hogy adja meg az alárendelt hitelesítésszolgáltató titkos kulcsfájljához tartozó pass kifejezést az alábbi példában látható módon. A hitelesítő kifejezés megadása után az OpenSSL létrehozza és megjeleníti a tanúsítvány részleteit, majd megkéri, hogy írja alá és véglegesítse az eszköz ügyféltanúsítványát. Adja meg az y értéket, hogy mindkét kérés létrehozza az ügyféltanúsítványt.

    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
    

    Miután az OpenSSL frissítette a tanúsítvány-adatbázist, ellenőrizze, hogy az ügyféltanúsítvány tanúsítványfájlja megtalálható-e az alárendelt hitelesítésszolgáltatói címtárban, és hogy az ügyféltanúsítvány PEM-tanúsítványfájlja (.pem) megtalálható-e az alárendelt hitelesítésszolgáltatói címtár tanúsítványainak alkönyvtárában. A .pem fájl neve megegyezik az ügyféltanúsítvány sorozatszámával.

Következő lépések

Az eszköz regisztrálható az IoT Hubon az adott eszközhöz létrehozott ügyféltanúsítvány teszteléséhez. Az eszközök regisztrálásával kapcsolatos további információkért tekintse meg az új eszköz regisztrálását az IoT Hub létrehozása az Azure Portal használatával című szakaszában.

Ha több kapcsolódó eszközzel kell tesztelnie, az Azure IoT Hub Device Provisioning Service használatával több eszközt is kiépítheti egy regisztrációs csoportban. További információ a regisztrációs csoportok eszközkiépítési szolgáltatásban való használatáról: Oktatóanyag: Több X.509-eszköz üzembe helyezése regisztrációs csoportokkal.

A tanúsítványfájlok formátumáról további információt az X.509-tanúsítványokban talál.