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ának beszerzé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
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}
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
Hozzon létre egy, az
rootca
előző lépésben létrehozott könyvtárban elnevezettrootca.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útumaca_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
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 arootca/private
címtárban. Az OpenSSLreq
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.csr
hogy a CSR-fájl jelen van arootca
könyvtárban és a titkos kulcsfájlbanrootca.key
.private
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 OpenSSLca
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ó arootca/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
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 ..
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
Hozzon létre egy, az
subca
előző lépésben létrehozott könyvtárban elnevezettsubca.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
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.
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ájlsubca.key
megtalálható-e azprivate
alkönyvtárban.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 arootca/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.
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.
Ú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.
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.
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/certs
Tanúsítvány .pem vagy .cer fájlmezőbe való felvételhez.Jelölje be a tanúsítvány állapotának ellenőrzése a feltöltéskor jelölőnégyzetet.
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
A Git Bash-ablakban győződjön meg arról, hogy még a
subca
könyvtárban van.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
testdevice
nevé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.
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.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özregisztrálásról további információt az eszközidentitások létrehozása és kezelése című témakörben talál.
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.