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.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.
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.
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
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.
Nyisson meg egy PowerShell-ablakot rendszergazda módban.
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
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.Engedélyezze a PowerShell számára a szkriptek futtatását.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
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.
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.
Lépjen arra a munkakönyvtárra
wrkdir
, ahol elhelyezte a tanúsítványgenerálási szkripteket.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.
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.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.
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.
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.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>"
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.
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.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
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.
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.pem
IoT Hubra.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>"
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