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


IoT Edge-eszköz létrehozása és kiépítése Linuxon X.509-tanúsítványok használatával

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.

Ez a cikk a Linux IoT Edge-eszközök regisztrálására és kiépítésére vonatkozó, végpontok közötti utasításokat tartalmazza, beleértve az IoT Edge telepítését is.

Minden IoT Hubhoz csatlakozó eszköz rendelkezik egy eszközazonosítóval, amely a felhőből az eszközre vagy az eszközről a felhőbe irányuló kommunikáció nyomon követésére szolgál. Konfigurálhat egy eszközt a kapcsolati adataival, beleértve az IoT Hub gazdagépnevét, az eszköz azonosítóját és az IoT Hubon való hitelesítéshez használt információkat.

A cikk lépései végigvezetnek egy manuális kiépítési folyamaton, ahol egyetlen eszközt csatlakoztat az IoT Hubhoz. A manuális kiépítéshez két lehetősége van az IoT Edge-eszközök hitelesítésére:

  • Szimmetrikus kulcsok: Amikor új eszközidentitást hoz létre az IoT Hubban, a szolgáltatás két kulcsot hoz létre. A kulcsok egyikét az eszközön helyezi el, és hitelesítéskor megjeleníti a kulcsot az IoT Hubnak.

    Ez a hitelesítési módszer gyorsabb az első lépésekhez, de nem olyan biztonságos.

  • X.509 önaláírt: Létrehozhat két X.509-identitástanúsítványt, és elhelyezheti őket az eszközön. Amikor új eszközidentitást hoz létre az IoT Hubban, mindkét tanúsítvány ujjlenyomatát adja meg. Amikor az eszköz hitelesíti az IoT Hubot, egy tanúsítványt jelenít meg, az IoT Hub pedig ellenőrzi, hogy a tanúsítvány megfelel-e az ujjlenyomatának.

    Ez a hitelesítési módszer biztonságosabb, és éles helyzetekben ajánlott.

Ez a cikk az X.509-tanúsítványok hitelesítési módszerként való használatát ismerteti. Ha szimmetrikus kulcsokat szeretne használni, lásd : IoT Edge-eszköz létrehozása és kiépítése Linuxon szimmetrikus kulcsokkal.

Feljegyzés

Ha sok eszközt szeretne beállítani, és nem szeretné manuálisan kiépíteni az egyes eszközöket, az alábbi cikkek egyikével megtudhatja, hogyan működik az IoT Edge az IoT Hub eszközkiépítési szolgáltatással:

Előfeltételek

Ez a cikk az IoT Edge-eszköz regisztrálását és az IoT Edge telepítését ismerteti. Ezek a feladatok különböző előfeltételekkel és segédprogramokkal rendelkeznek a feladatok végrehajtásához. A folytatás előtt győződjön meg arról, hogy rendelkezik az összes előfeltételével.

Eszközfelügyeleti eszközök

Az eszköz regisztrálásának lépéseihez használhatja az Azure Portalt, a Visual Studio Code-ot vagy az Azure CLI-t . Minden segédprogramnak megvannak a saját előfeltételei:

Ingyenes vagy standard IoT Hub az Azure-előfizetésben.

Eszközkövetelmények

X64, ARM32 vagy ARM64 Linux rendszerű eszköz.

A Microsoft különböző operációs rendszerekhez teszi közzé a telepítési csomagokat.

Az éles környezetekben jelenleg támogatott operációs rendszerekről az Azure IoT Edge által támogatott rendszerekről olvashat.

Eszközidentitás-tanúsítványok létrehozása

Az X.509-tanúsítványokkal való manuális üzembe helyezéshez az IoT Edge 1.0.10-es vagy újabb verziója szükséges.

Amikor X.509-tanúsítványokkal épít ki egy IoT Edge-eszközt, az úgynevezett eszközidentitás-tanúsítványt fogja használni. Ez a tanúsítvány csak IoT Edge-eszköz kiépítéséhez és az eszköz Azure IoT Hubbal való hitelesítéséhez használható. Ez egy levéltanúsítvány, amely nem ír alá más tanúsítványokat. Az eszköz identitástanúsítványa eltér azoktól a hitelesítésszolgáltatói (CA-) tanúsítványoktól, amelyeket az IoT Edge-eszköz a moduloknak vagy az alsóbb rétegbeli eszközöknek biztosít ellenőrzés céljából.

Az X.509-tanúsítványhitelesítéshez minden eszköz hitelesítési információja az eszköz identitástanúsítványaiból származó ujjlenyomatok formájában lesz megadva. Ezeket az ujjlenyomatokat az IoT Hub az eszközregisztráció időpontjában kapja meg, hogy a szolgáltatás felismerje az eszközt, amikor csatlakozik.

Az IoT Edge-eszközök hitelesítésszolgáltatói tanúsítványainak használatáról további információt az Azure IoT Edge tanúsítványhasználatának ismertetése című témakörben talál.

Az X.509 manuális kiépítéséhez a következő fájlokra van szüksége:

  • Az eszköz identitástanúsítványai közül kettő .cer vagy .pem formátumban egyező titkos kulcsú tanúsítványokkal.

    Az IoT Edge-futtatókörnyezet egy tanúsítvány-/kulcsfájlkészletet biztosít. Eszközidentitás-tanúsítványok létrehozásakor állítsa be a tanúsítvány közös nevét (CN) azzal az eszközazonosítóval, amelyet az eszköznek az IoT Hubban szeretne használni.

  • Mindkét eszközidentitás-tanúsítvány ujjlenyomata.

    Az ujjlenyomat értéke 40 hexa az SHA-1 kivonatokhoz, az SHA-256 kivonatokhoz pedig 64 hexa karakter. Mindkét ujjlenyomatot az IoT Hub biztosítja az eszközregisztráció idején.

Ha nem rendelkezik elérhető tanúsítványokkal, demótanúsítványokat hozhat létre az IoT Edge eszközfunkcióinak teszteléséhez. A cikkben található utasításokat követve állítsa be a tanúsítványlétrehozás parancsfájljait, hozzon létre egy legfelső szintű hitelesítésszolgáltatói tanúsítványt, majd hozzon létre két IoT Edge-eszközidentitás-tanúsítványt.

Az ujjlenyomat tanúsítványból való lekérésének egyik módja az alábbi Openssl-parancs:

openssl x509 -in <certificate filename>.pem -text -fingerprint

Eszköz regisztrálása

Az Azure Portal, a Visual Studio Code vagy az Azure CLI használatával a beállításoktól függően regisztrálhatja az eszközt.

Az Azure Portal IoT Hubján az IoT Edge-eszközök létrehozása és kezelése külön történik az olyan IoT-eszközöktől, amelyek nincsenek engedélyezve a peremhálózaton.

  1. Jelentkezzen be az Azure Portalra , és lépjen az IoT Hubra.

  2. A bal oldali panelen válassza az Eszközök lehetőséget a menüben, majd válassza az Eszköz hozzáadása lehetőséget.

  3. Az Eszköz létrehozása lapon adja meg a következő információkat:

    • Hozzon létre egy leíró eszközazonosítót. Jegyezze fel ezt az eszközazonosítót, ahogy később használni fogja.
    • Jelölje be az IoT Edge-eszköz jelölőnégyzetet.
    • Hitelesítési típusként válassza az X.509 Önaláírt elemet.
    • Adja meg az elsődleges és másodlagos identitástanúsítvány ujjlenyomatait. Az ujjlenyomat értéke 40 hexa az SHA-1 kivonatokhoz, az SHA-256 kivonatokhoz pedig 64 hexa karakter.
  4. Válassza a Mentés lehetőséget.

Most, hogy regisztrált egy eszközt az IoT Hubban, kérje le az IoT Edge-futtatókörnyezet telepítésének és kiépítésének befejezéséhez használt információkat.

Regisztrált eszközök megtekintése és kiépítési információk lekérése

Az X.509-tanúsítványhitelesítést használó eszközöknek szükségük van az IoT Hub nevére, az eszköz nevére és a tanúsítványfájljaikra az IoT Edge-futtatókörnyezet telepítésének és kiépítésének befejezéséhez.

Az IoT Hubhoz csatlakozó peremhálózati eszközök az Eszközök lapon találhatók. A listát az Iot Edge-eszköz típusával szűrheti.

Képernyőkép arról, hogyan tekintheti meg az összes IoT Edge-eszközt az IoT Hubon.

Az IoT Edge telepítése

Ebben a szakaszban előkészíti Linux rendszerű virtuális gépét vagy fizikai eszközét az IoT Edge-hez. Ezután telepítse az IoT Edge-et.

Futtassa az alábbi parancsokat a csomagtárház hozzáadásához, majd adja hozzá a Microsoft-csomagaláíró kulcsot a megbízható kulcsok listájához.

Fontos

2022. június 30-án a Raspberry Pi OS Stretch kilépett az 1. rétegbeli operációsrendszer-támogatási listából. A lehetséges biztonsági rések elkerülése érdekében frissítse a gazdagép operációs rendszerét a Bullseye-re.

A telepítés néhány paranccsal elvégezhető. Nyisson meg egy terminált, és futtassa a következő parancsokat:

  • 20.04:

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 18.04:

    wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    

Feljegyzés

Az Azure IoT Edge szoftvercsomagjaira az egyes csomagokban (usr/share/doc/{package-name} vagy a LICENSE címtárban) található licencfeltételek vonatkoznak. A csomag használata előtt olvassa el a licencfeltételeket. A csomagok telepítése és használata jelenti a jelen feltételek elfogadását. Ha nem ért egyet a licencfeltételekkel, ne használja ezt a csomagot.

Tárolómotor telepítése

Az Azure IoT Edge egy OCI-kompatibilis tároló-futtatókörnyezetre támaszkodik. Éles helyzetekben javasoljuk, hogy használja a Moby motort. A Moby motor az egyetlen olyan tárolómotor, amelyet hivatalosan támogat az IoT Edge. A Docker CE/EE tárolórendszerképei kompatibilisek a Moby futtatókörnyezetével.

Telepítse a Moby motort.

sudo apt-get update; \
  sudo apt-get install moby-engine

A Moby motor sikeres telepítése után konfigurálja úgy, hogy naplózási illesztőprogramot használjon local naplózási mechanizmusként. A naplózási konfigurációval kapcsolatos további információkért tekintse meg az éles üzembehelyezési ellenőrzőlistát.

  • Hozza létre vagy nyissa meg a Docker démon konfigurációs fájlját a következő helyen /etc/docker/daemon.json: .

  • Állítsa be az alapértelmezett naplózási illesztőprogramot a local naplózási illesztőprogramra az alábbi példában látható módon.

       {
          "log-driver": "local"
       }
    
  • Indítsa újra a tárolómotort a módosítások érvénybe lépéséhez.

    sudo systemctl restart docker
    

    Tipp.

    Ha hibaüzenetet kap a Moby tárolómotor telepítésekor, ellenőrizze a Linux kernelt a Moby kompatibilitása érdekében. Egyes beágyazott eszközgyártók egyéni Linux-kerneleket tartalmazó eszközlemezképeket szállítanak a tárolómotorok kompatibilitásához szükséges funkciók nélkül. Futtassa az alábbi parancsot, amely a Moby által biztosított ellenőrzőkonfigurációs szkriptet használja a kernelkonfiguráció ellenőrzéséhez:

    curl -ssl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh
    chmod +x check-config.sh
    ./check-config.sh
    

    A szkript kimenetében ellenőrizze, hogy az összes elem be Generally Necessary van-e kapcsolva, és Network Drivers engedélyezve van-e. Ha hiányoznak a funkciók, engedélyezze őket úgy, hogy újraépíti a kernelt a forrásból, és kiválasztja a kapcsolódó modulokat a megfelelő kernel .config fájlba való felvételéhez. Hasonlóképpen, ha kernelkonfigurációs generátort használ, például defconfig vagy menuconfig, keresse meg és engedélyezze a megfelelő funkciókat, és ennek megfelelően építse újra a kernelt. Az újonnan módosított kernel üzembe helyezése után futtassa újra a check-config szkriptet annak ellenőrzéséhez, hogy az összes szükséges funkció sikeresen engedélyezve lett-e.

Az IoT Edge-futtatókörnyezet telepítése

Az IoT Edge biztonsági démon biztonsági szabványokat biztosít és tart fenn az IoT Edge-eszközön. A démon minden rendszerindításkor elindul, és az IoT Edge többi futtatókörnyezetének elindításával elindítja az eszközt.

Az ebben a szakaszban ismertetett lépések a legújabb verzió internetkapcsolattal rendelkező eszközre való telepítésének tipikus folyamatát jelölik. Ha telepítenie kell egy adott verziót, például egy előzetes verziót, vagy offline állapotban kell telepítenie, kövesse az Offline vagy adott verzió telepítési lépéseit a jelen cikk későbbi részében.

Telepítse az IoT Edge 1.1.* verzióját a libiothsm-std csomaggal együtt:

sudo apt-get update; \
  sudo apt-get install iotedge

Feljegyzés

Az IoT Edge 1.1-es verziója az IoT Edge hosszú távú támogatási ága. Ha régebbi verziót futtat, javasoljuk, hogy telepítse vagy frissítse a legújabb javításra, mivel a régebbi verziók már nem támogatottak.

Az eszköz kiépítése a felhőbeli identitással

Most, hogy a tárolómotor és az IoT Edge-futtatókörnyezet telepítve van az eszközön, készen áll a következő lépésre, amely az eszköz felhőbeli identitás- és hitelesítési adataival való beállítását jelenti.

Az IoT Edge-eszközön nyissa meg a konfigurációs fájlt.

sudo nano /etc/iotedge/config.yaml

Keresse meg a fájl kiépítési konfigurációs szakaszát, és oldja fel a manuális kiépítési konfigurációt egy X.509 identitástanúsítvány-szakasz használatával. Győződjön meg arról, hogy a többi kiépítési szakasz megjegyzést tartalmaz. Győződjön meg arról, hogy a kiépítés: sor nem rendelkezik korábbi szabad térrel, és hogy a beágyazott elemeket két szóköz behúzta.

# Manual provisioning configuration using an x.509 identity certificate
provisioning:
  source: "manual"
  authentication:
    method: "x509"
    iothub_hostname: "REQUIRED_IOTHUB_HOSTNAME"
    device_id: "REQUIRED_DEVICE_ID_PROVISIONED_IN_IOTHUB"
    identity_cert: "REQUIRED_URI_TO_DEVICE_IDENTITY_CERTIFICATE"
    identity_pk: "REQUIRED_URI_TO_DEVICE_IDENTITY_PRIVATE_KEY"

Frissítse a következő mezőket:

  • iothub_hostname: Annak az IoT Hubnak a gazdaneve, amelyhez az eszköz csatlakozik. Például: {IoT hub name}.azure-devices.net.
  • device_id: Az eszköz regisztrálásakor megadott azonosító.
  • identity_cert: URI az eszközön található identitástanúsítványhoz. Például: file:///path/identity_certificate.pem.
  • identity_pk: URI a megadott identitástanúsítvány titkos kulcsfájljára. Például: file:///path/identity_key.pem.

Mentse és zárja be a fájlt.

CTRL + X, , YEnter

Miután megadta a kiépítési adatokat a konfigurációs fájlban, indítsa újra a démont:

sudo systemctl restart iotedge

Sikeres konfiguráció ellenőrzése

Ellenőrizze, hogy a futtatókörnyezet telepítése és konfigurálása sikeresen megtörtént-e az IoT Edge-eszközön.

Tipp.

Az iotedge parancsok futtatásához megemelt jogosultsági szint szükséges. Amikor az IoT Edge-futtatókörnyezet telepítése után kijelentkezik, majd először újra bejelentkezik a gépre, az engedélyei automatikusan frissülnek. Addig is használja sudo a parancsok előtt.

Ellenőrizze, hogy az IoT Edge rendszerszolgáltatás fut-e.

sudo systemctl status iotedge

Ha hibaelhárításra van szükség, kérje le a szolgáltatás naplóit.

journalctl -u iotedge

check Az eszköz konfigurálásának és kapcsolati állapotának ellenőrzéséhez használja az eszközt.

sudo iotedge check

Tipp.

sudo Az ellenőrzőeszközt mindig az engedélyek frissítése után is futtathatja. Az eszköznek emelt szintű jogosultságokra van szüksége a konfigurációs fájl eléréséhez a konfiguráció állapotának ellenőrzéséhez.

Feljegyzés

Egy újonnan kiépített eszközön az IoT Edge Hubhoz kapcsolódó hiba jelenhet meg:

× éles üzemkészség: Az Edge Hub tárolókönyvtára megmarad a gazdagép fájlrendszerén – Hiba

Nem sikerült ellenőrizni az edgeHub-tároló aktuális állapotát

Ez a hiba egy újonnan kiépített eszközön várható, mert az IoT Edge Hub modul nem fut. A hiba megoldásához az IoT Hubban állítsa be az eszköz moduljait, és hozzon létre egy üzembe helyezést. Az eszköz központi telepítésének létrehozása elindítja a modulokat az eszközön, beleértve az IoT Edge Hub modult is.

Tekintse meg az IoT Edge-eszközön futó összes modult. A szolgáltatás első indításakor csak az edgeAgent modul fut. Az edgeAgent modul alapértelmezés szerint fut, és segít az eszközön üzembe helyezendő további modulok telepítésében és elindításában.

sudo iotedge list

Új IoT Edge-eszköz létrehozásakor az állapotkód 417 -- The device's deployment configuration is not set megjelenik az Azure Portalon. Ez az állapot normális, és azt jelenti, hogy az eszköz készen áll a modul üzembe helyezésére.

Offline vagy adott verzió telepítése (nem kötelező)

Az ebben a szakaszban szereplő lépések olyan forgatókönyvekre vonatkoznak, amelyekre a szokásos telepítési lépések nem vonatkoznak. Ez a következők lehetnek:

  • Az IoT Edge telepítése offline állapotban
  • Kiadásra jelölt verzió telepítése

Ha az Azure IoT Edge-futtatókörnyezet egy adott verzióját szeretné telepíteni, amely nem érhető el a csomagkezelőn keresztül, kövesse az ebben a szakaszban leírt lépéseket. A Microsoft csomaglistája csak korlátozott számú legutóbbi verziót és azok alverzióit tartalmazza, ezért ezek a lépések mindenki számára elérhetők, akik régebbi verziót vagy kiadásra jelölt verziót szeretnének telepíteni.

Curl-parancsokkal közvetlenül az IoT Edge GitHub-adattárból célozhatja meg az összetevőfájlokat.

  1. Lépjen az Azure IoT Edge-kiadásokra, és keresse meg a megcélzni kívánt kiadási verziót.

  2. Bontsa ki az adott verzióHoz tartozó Eszközök szakaszt.

  3. Minden kiadásnak új fájlokkal kell rendelkeznie az IoT Edge biztonsági démonhoz és a hsmlibhez. Ha offline eszközre telepíti az IoT Edge-et, töltse le ezeket a fájlokat előre. Ellenkező esetben az alábbi parancsokkal frissítheti ezeket az összetevőket.

    1. Keresse meg az IoT Edge-eszköz architektúrájának megfelelő libiothsm-std fájlt. Kattintson a jobb gombbal a fájlhivatkozásra, és másolja a hivatkozás címét.

    2. A hsmlib ezen verziójának telepítéséhez használja a következő parancs másolt hivatkozását:

      curl -L libiothsm-std_link_here -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
      
    3. Keresse meg az IoT Edge-eszköz architektúrájának megfelelő iotedge-fájlt . Kattintson a jobb gombbal a fájlhivatkozásra, és másolja a hivatkozás címét.

    4. Az IoT Edge biztonsági démon ezen verziójának telepítéséhez használja a következő parancs másolt hivatkozását.

      curl -L iotedge_link_here -o iotedge.deb && sudo apt-get install ./iotedge.deb
      

Most, hogy a tárolómotor és az IoT Edge-futtatókörnyezet telepítve van az eszközön, készen áll a következő lépésre, vagyis az eszköz felhőbeli identitással való kiépítésére.

Az IoT Edge eltávolítása

Ha el szeretné távolítani az IoT Edge-telepítést az eszközről, használja az alábbi parancsokat.

Távolítsa el az IoT Edge-futtatókörnyezetet.

sudo apt-get autoremove iotedge

Az IoT Edge-futtatókörnyezet eltávolításakor a létrehozott tárolók leállnak, de továbbra is léteznek az eszközön. Az összes tároló megtekintéséhez tekintse meg, hogy mely tárolók maradjanak.

sudo docker ps -a

Törölje a tárolókat az eszközről, beleértve a két futtatókörnyezeti tárolót is.

sudo docker rm -f <container name>

Végül távolítsa el a tároló futtatókörnyezetét az eszközről.

sudo apt-get autoremove --purge moby-engine

Következő lépések

Folytassa az IoT Edge-modulok üzembe helyezését, hogy megtudja, hogyan helyezhet üzembe modulokat az eszközén.