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

A következőkre vonatkozik:IoT Edge 1.5 pipa IoT Edge 1.5 IoT Edge 1.4 pipa IoT Edge 1.4

Fontos

Az IoT Edge 1.5 LTS és az IoT Edge 1.4 LTS támogatott kiadások. Az IoT Edge 1.4 LTS 2024. november 12-én megszűnik. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.

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.

Peremhálózati hitelesítésszolgáltatói tanúsítványok létrehozása

Ezek a tanúsítványok átjáróforgatókönyvekhez szükségesek, mert az edge CA-tanúsítvány 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.

A peremhálózati hitelesítésszolgáltatói tanúsítvány 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ányokat hozhat létre, ha nincs konfigurálva a peremhálózati hitelesítésszolgáltató. Az Edge CA-tanúsítványok a fájl Edge CA szakaszában config.toml , az IoT Edge-eszközön kerülnek. 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:

    Write-Host (Get-Pfxcertificate -FilePath certs\iot-device-<device name>-primary.cert.pem).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