Megosztás a következőn keresztül:


Bemutató tanúsítvány létrehozása az IoT Edge-eszköz funkcióinak teszteléséhez

A következőkre vonatkozik: igen ikon IoT Edge 1.1

Fontos

Az IoT Edge 1.1 támogatási dátuma 2022. december 13. volt. A termék, szolgáltatás, technológia vagy API támogatásáról a Microsoft-termékek életciklusa című leírásból tájékozódhat. Az IoT Edge legújabb verziójára való frissítésről további információt az IoT Edge frissítése című témakörben talál.

Az IoT Edge-eszközök tanúsítványokat igényelnek a futtatókörnyezet, a modulok és az alsóbb rétegbeli eszközök közötti biztonságos kommunikációhoz. Ha nem rendelkezik hitelesítésszolgáltatóval a szükséges tanúsítványok létrehozásához, demótanúsítványokkal kipróbálhatja az IoT Edge funkcióit a tesztkörnyezetben. Ez a cikk az IoT Edge által a teszteléshez biztosított tanúsítványgenerálási szkriptek funkcióit ismerteti.

Figyelmeztetés

Ezek a tanúsítványok 30 napon belül lejárnak, és éles környezetben nem használhatók.

Bármilyen gépen létrehozhat tanúsítványokat, majd átmásolhatja őket az IoT Edge-eszközére, vagy közvetlenül az IoT Edge-eszközön hozhatja létre a tanúsítványokat.

Előfeltételek

Egy fejlesztőgép, amelyen telepítve van a Git.

Teszttanúsítvány-szkriptek letöltése és a munkakönyvtár beállítása

A GitHub IoT Edge-adattára olyan tanúsítványgenerálási szkripteket tartalmaz, amelyekkel demótanúsítványokat hozhat létre. Ez a szakasz útmutatást nyújt a szkriptek windowsos vagy linuxos számítógépen való futtatásának előkészítéséhez.

Ha demótanúsítványokat szeretne létrehozni Egy Windows-eszközön, telepítenie kell az OpenSSL-t, majd klónoznia kell a generációs szkripteket, és be kell állítania őket, hogy helyileg fussanak a PowerShellben.

Az OpenSSL telepítése

Telepítse a Windows OpenSSL-t a tanúsítványok létrehozásához használt gépen. Ha már telepítve van az OpenSSL a Windows-eszközön, győződjön meg arról, hogy openssl.exe elérhető a PATH környezeti változóban.

Az OpenSSL-t többféleképpen is telepítheti, beleértve a következő lehetőségeket:

  • Egyszerűbb: Töltse le és telepítse a külső OpenSSL bináris fájlokat, például az OpenSSL-ből a SourceForge-on. Adja hozzá a openssl.exe teljes elérési útját a PATH környezeti változóhoz.

  • Ajánlott: Töltse le az OpenSSL forráskódot, és hozza létre a bináris fájlokat a gépen saját maga vagy vcpkg használatával. Az alábbi utasítások a vcpkg használatával egyszerűen letölthetik a forráskódot, lefordítják és telepíthetik az OpenSSL-t a Windows-gépen.

    1. Lépjen egy könyvtárba, ahol telepíteni szeretné a vcpkg-t. Kövesse az utasításokat a vcpkg letöltéséhez és telepítéséhez.

    2. A vcpkg telepítése után futtassa a következő parancsot egy PowerShell-parancssorból a Windows x64 OpenSSL-csomagjának telepítéséhez. A telepítés általában körülbelül 5 percet vesz igénybe.

      .\vcpkg install openssl:x64-windows
      
    3. Adja hozzá <vcpkg path>\installed\x64-windows\tools\openssl a PATH környezeti változóhoz, hogy a openssl.exe fájl meghívásra elérhető legyen.

Szkriptek előkészítése a PowerShellben

Az Azure IoT Edge Git-adattár olyan szkripteket tartalmaz, amelyekkel teszttanúsítványokat hozhat létre. Ebben a szakaszban klónozza az IoT Edge-adattárat, és végrehajtja a szkripteket.

  1. Nyisson meg egy PowerShell-ablakot rendszergazda módban.

  2. Klónozza az IoT Edge Git-adattárat, amely szkripteket tartalmaz a demótanúsítványok létrehozásához. Használja a git clone parancsot, vagy töltse le a ZIP-t.

    git clone https://github.com/Azure/iotedge.git
    
  3. Hozzon létre egy könyvtárat, amelyben dolgozni szeretne, és másolja oda a tanúsítványszkripteket. Ebben a könyvtárban minden tanúsítvány és kulcsfájl létrejön.

    mkdir wrkdir
    cd .\wrkdir\
    cp ..\iotedge\tools\CACertificates\*.cnf .
    cp ..\iotedge\tools\CACertificates\ca-certs.ps1 .
    

    Ha zip-fájlként töltötte le az adattárat, akkor a mappa neve és iotedge-master az elérési út többi része ugyanaz.

  4. Engedélyezze a PowerShell számára a szkriptek futtatását.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  5. Hozza be a szkriptek által használt függvényeket a PowerShell globális névterébe.

    . .\ca-certs.ps1
    

    A PowerShell-ablak figyelmeztetést jelenít meg arról, hogy a szkript által létrehozott tanúsítványok csak tesztelési célokra szolgálnak, és éles környezetben nem használhatók.

  6. Ellenőrizze, hogy az OpenSSL megfelelően lett-e telepítve, és győződjön meg arról, hogy nem lesz névütközés a meglévő tanúsítványokkal. Ha problémák merülnek fel, a szkript kimenetének le kell írnia, hogyan lehet kijavítani őket a rendszeren.

    Test-CACertsPrerequisites
    

Legfelső szintű hitelesítésszolgáltatói tanúsítvány létrehozása

Futtassa ezt a szkriptet a jelen cikk minden lépéséhez szükséges legfelső szintű hitelesítésszolgáltató létrehozásához.

A legfelső szintű hitelesítésszolgáltatói tanúsítvány az összes többi demótanúsítvány készítésére szolgál egy IoT Edge-forgatókönyv teszteléséhez. Továbbra is használhatja ugyanazt a fő hitelesítésszolgáltatói tanúsítványt, hogy több IoT Edge- vagy alsóbb rétegbeli eszközhöz is készítsen demótanúsítványokat.

Ha már rendelkezik egy fő hitelesítésszolgáltatói tanúsítvánnyal a munkamappában, ne hozzon létre újat. Az új fő hitelesítésszolgáltatói tanúsítvány felülírja a régit, és a régiből készült alsóbb rétegbeli tanúsítványok működése leáll. Ha több fő hitelesítésszolgáltatói tanúsítványt szeretne, ügyeljen arra, hogy külön mappákban kezelje őket.

  1. Lépjen arra a munkakönyvtárra wrkdir , ahol elhelyezte a tanúsítványgenerálási szkripteket.

  2. Hozza létre a legfelső szintű hitelesítésszolgáltatói tanúsítványt, és írjon alá egy köztes tanúsítványt. A tanúsítványok mind a munkakönyvtárban vannak elhelyezve.

    New-CACertsCertChain rsa
    

    Ez a szkriptparancs több tanúsítványt és kulcsfájlt hoz létre, de amikor a cikkek a legfelső szintű hitelesítésszolgáltatói tanúsítványt kérik, használja a következő fájlt:

    certs\azure-iot-test-only.root.ca.cert.pem

Ez a tanúsítvány szükséges ahhoz, hogy további tanúsítványokat hozhasson létre az IoT Edge-eszközökhöz és az alsóbb rétegbeli eszközökhöz a következő szakaszokban leírtak szerint.

Identitástanúsítvány létrehozása az IoT Edge-eszközhöz

Az IoT Edge-eszközök identitástanúsítványai IoT Edge-eszközök kiépítésére szolgálnak, ha X.509-tanúsítványhitelesítést használ. Ha szimmetrikus kulcsot használ az IoT Hubra vagy a DPS-be való hitelesítéshez, ezekre a tanúsítványokra nincs szükség, és kihagyhatja ezt a szakaszt.

Ezek a tanúsítványok működnek, akár manuális kiépítést, akár automatikus kiépítést használ az Azure IoT Hub Device Provisioning Service (DPS) használatával.

Az eszközidentitás-tanúsítványok az IoT Edge-eszközön található konfigurációs fájl kiépítési szakaszában találhatóak.

  1. Keresse meg azt a munkakönyvtárat wrkdir , amely rendelkezik a tanúsítványgenerálási szkriptekkel és a legfelső szintű hitelesítésszolgáltatói tanúsítvánnyal.

  2. Hozza létre az IoT Edge-eszköz identitástanúsítványát és titkos kulcsát a következő paranccsal:

    New-CACertsEdgeDeviceIdentity "<device-id>"
    

    A parancsnak átadott név az IoT Hub IoT Edge-eszközének eszközazonosítója.

  3. Az új eszközidentitás-parancs több tanúsítványt és kulcsfájlt hoz létre:

    Típus Fájl Leírás
    Eszközidentitás-tanúsítvány certs\iot-edge-device-identity-<device-id>.cert.pem A korábban létrehozott köztes tanúsítvány aláírása. Csak az identitástanúsítványt tartalmazza. Adja meg a DPS egyéni regisztrációjának vagy az IoT Hub kiépítésének konfigurációs fájljában.
    Teljes lánctanúsítvány certs\iot-edge-device-identity-<device-id>-full-chain.cert.pem A teljes tanúsítványláncot tartalmazza, beleértve a köztes tanúsítványt is. Adja meg a konfigurációs fájlban, hogy az IoT Edge a DPS-nek mutassa be a csoportregisztráció kiépítéséhez.
    Titkos kulcs private\iot-edge-device-identity-<device-id>.key.pem Az eszköz identitástanúsítványához társított titkos kulcs. A konfigurációs fájlban kell megadni, amíg valamilyen tanúsítványhitelesítést (ujjlenyomatot vagy CA-t) használ a DPS-hez vagy az IoT Hubhoz.

Eszköz hitelesítésszolgáltatói tanúsítványainak létrehozása

Ezek a tanúsítványok átjáróforgatókönyvekhez szükségesek, mivel az eszköz ca-tanúsítványa az, ahogyan az IoT Edge-eszköz ellenőrzi az identitását az alsóbb rétegbeli eszközökön. Ezt a szakaszt kihagyhatja, ha nem csatlakoztat alsóbb rétegbeli eszközöket az IoT Edge-hez.

Az eszköz hitelesítésszolgáltatói tanúsítványa az eszközön futó modulok tanúsítványainak létrehozásáért is felelős, de az IoT Edge-futtatókörnyezet ideiglenes tanúsítványt hozhat létre, ha az eszköz hitelesítésszolgáltatója nincs konfigurálva. Az eszköz hitelesítésszolgáltatói tanúsítványai az IoT Edge-eszközön található config.yaml fájl Tanúsítvány szakaszában találhatóak. További információ: Az Azure IoT Edge tanúsítványhasználatának ismertetése.

  1. Keresse meg azt a munkakönyvtárat wrkdir , amely rendelkezik a tanúsítványgenerálási szkriptekkel és a legfelső szintű hitelesítésszolgáltatói tanúsítvánnyal.

  2. Hozza létre az IoT Edge hitelesítésszolgáltatói tanúsítványát és titkos kulcsát az alábbi paranccsal. Adja meg a hitelesítésszolgáltatói tanúsítvány nevét. A New-CACertsEdgeDevice parancsnak átadott név nem lehet azonos a konfigurációs fájl gazdagépneve paraméterével vagy az eszköz IoT Hub-azonosítójával.

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. Ez a parancs több tanúsítványt és kulcsfájlt hoz létre. A következő tanúsítványt és kulcspárt át kell másolni egy IoT Edge-eszközre, és hivatkozni kell a konfigurációs fájlban:

    • certs\iot-edge-device-ca-<CA cert name>-full-chain.cert.pem
    • private\iot-edge-device-ca-<CA cert name>.key.pem

Alsóbb rétegbeli eszköztanúsítványok létrehozása

Ezek a tanúsítványok szükségesek egy alsóbb rétegbeli IoT-eszköz átjáróforgatókönyvhöz való beállításához, és X.509-hitelesítést szeretnének használni az IoT Hub vagy a DPS használatával. Ha szimmetrikus kulcsos hitelesítést szeretne használni, nem kell tanúsítványokat létrehoznia az alsóbb rétegbeli eszközhöz, és kihagyhatja ezt a szakaszt.

Az IoT-eszközök hitelesítésének két módja van X.509-tanúsítványokkal: önaláírt tanúsítványokkal vagy hitelesítésszolgáltató által aláírt tanúsítványokkal.

  • Az X.509 önaláírt hitelesítéshez, más néven ujjlenyomat-hitelesítéshez új tanúsítványokat kell létrehoznia az IoT-eszközön való helyhez. Ezek a tanúsítványok egy ujjlenyomattal rendelkeznek, amelyet az IoT Hubbal oszt meg hitelesítés céljából.
  • Az X.509 hitelesítésszolgáltató (CA) által aláírt hitelesítéshez olyan legfelső szintű hitelesítésszolgáltatói tanúsítványra van szüksége, amelyet az IoT Hubon vagy a DPS-ben regisztrál, amellyel tanúsítványokat ír alá az IoT-eszközéhez. A legfelső szintű hitelesítésszolgáltatói tanúsítvány vagy annak köztes tanúsítványai által kibocsátott tanúsítványt használó eszközök mindaddig hitelesíthetik magukat, amíg az eszköz a teljes láncot be nem mutatja.

A tanúsítványgenerálási szkriptek segítségével demótanúsítványokat készíthet ezen hitelesítési forgatókönyvek bármelyikének teszteléséhez.

Önaláírt tanúsítványok

Ha önaláírt tanúsítványokkal hitelesít egy IoT-eszközt, eszköztanúsítványokat kell létrehoznia a megoldás fő hitelesítésszolgáltatói tanúsítványa alapján. Ezután lekéri a hexadecimális "ujjlenyomatot" az IoT Hubnak nyújtott tanúsítványokból. Az IoT-eszköznek szüksége van az eszköztanúsítványok másolatára is, hogy hitelesíthesse magát az IoT Hubbal.

  1. Keresse meg azt a munkakönyvtárat wrkdir , amely rendelkezik a tanúsítványgenerálási szkriptekkel és a legfelső szintű hitelesítésszolgáltatói tanúsítvánnyal.

  2. Hozzon létre két tanúsítványt (elsődleges és másodlagos) az alsóbb rétegbeli eszközhöz. Egyszerű elnevezési konvenció, ha az IoT-eszköz nevével, majd az elsődleges vagy másodlagos címkével hozza létre a tanúsítványokat. Példa:

    New-CACertsDevice "<device ID>-primary"
    New-CACertsDevice "<device ID>-secondary"
    

    Ez a szkriptparancs több tanúsítványt és kulcsfájlt hoz létre. Az alábbi tanúsítványokat és kulcspárokat át kell másolni az alsóbb rétegbeli IoT-eszközre, és hivatkozni kell az IoT Hubhoz csatlakozó alkalmazásokban:

    • certs\iot-device-<device ID>-primary-full-chain.cert.pem
    • certs\iot-device-<device ID>-secondary-full-chain.cert.pem
    • certs\iot-device-<device ID>-primary.cert.pem
    • certs\iot-device-<device ID>-secondary.cert.pem
    • certs\iot-device-<device ID>-primary.cert.pfx
    • certs\iot-device-<device ID>-secondary.cert.pfx
    • private\iot-device-<device ID>-primary.key.pem
    • private\iot-device-<device ID>-secondary.key.pem
  3. Kérje le az SHA1 ujjlenyomatot (az IoT Hub-környezetekben ujjlenyomatot) minden tanúsítványból. Az ujjlenyomat egy 40 hexadecimális karaktersorozat. A tanúsítvány megtekintéséhez és az ujjlenyomat megkereséséhez használja az alábbi Openssl parancsot:

    openssl x509 -in certs\iot-device-<device name>-primary.cert.pem -text -thumbprint
    

    Futtassa ezt a parancsot kétszer, egyszer az elsődleges tanúsítványhoz és egyszer a másodlagos tanúsítványhoz. Az új IoT-eszközök önaláírt X.509-tanúsítványokkal történő regisztrálásakor mindkét tanúsítvány ujjlenyomatát meg kell adnia.

HITELESÍTÉSSZOLGÁLTATÓ ÁLTAL aláírt tanúsítványok

Ha hitelesítésszolgáltató által aláírt tanúsítványokkal hitelesít egy IoT-eszközt, fel kell töltenie a megoldás fő hitelesítésszolgáltatói tanúsítványát az IoT Hubra. Ugyanezzel a fő hitelesítésszolgáltatói tanúsítvánnyal hozzon létre eszköztanúsítványokat az IoT-eszközre, hogy az hitelesíthesse az IoT Hubbal.

Az ebben a szakaszban szereplő tanúsítványok az IoT Hub X.509 tanúsítvány-oktatóanyag-sorozat lépéseit ismertetik. A sorozat bevezetéséhez tekintse meg a nyilvános kulcsú titkosítás és az X.509 nyilvános kulcsú infrastruktúra ismertetése című témakört.

  1. Töltse fel a legfelső szintű hitelesítésszolgáltató tanúsítványfájlját a munkakönyvtárból az certs\azure-iot-test-only.root.ca.cert.pemIoT Hubra.

  2. Ha nincs kiválasztva az automatikus ellenőrzés, az Azure Portalon megadott kód használatával ellenőrizze, hogy ön rendelkezik-e a legfelső szintű hitelesítésszolgáltatói tanúsítvánnyal.

    New-CACertsVerificationCert "<verification code>"
    
  3. Hozzon létre egy tanúsítványláncot az alsóbb rétegbeli eszközhöz. Használja ugyanazt az eszközazonosítót, amelyben az eszköz regisztrálva van az IoT Hubban.

    New-CACertsDevice "<device id>"
    

    Ez a szkriptparancs több tanúsítványt és kulcsfájlt hoz létre. Az alábbi tanúsítványokat és kulcspárokat át kell másolni az alsóbb rétegbeli IoT-eszközre, és hivatkozni kell az IoT Hubhoz csatlakozó alkalmazásokban:

    • certs\iot-device-<device id>.cert.pem
    • certs\iot-device-<device id>.cert.pfx
    • certs\iot-device-<device id>-full-chain.cert.pem
    • private\iot-device-<device id>.key.pem