Sdílet prostřednictvím


Vytvoření a zřízení zařízení IoT Edge v Linuxu pomocí certifikátů X.509

Platí pro: Značka zaškrtnutí IoT Edge 1.5 IoT Edge 1.5 Značka zaškrtnutí IoT Edge 1.4 IoT Edge 1.4

Důležité

Podporované verze ioT Edge 1.5 LTS a IoT Edge 1.4 LTS. IoT Edge 1.4 LTS je konec životnosti 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

Tento článek obsahuje kompletní pokyny pro registraci a zřízení zařízení IoT Edge s Linuxem, včetně instalace IoT Edge.

Každé zařízení, které se připojuje k centru IoT, má ID zařízení, které se používá ke sledování komunikace typu cloud-zařízení nebo komunikace typu zařízení-cloud. Zařízení nakonfigurujete s informacemi o připojení, které zahrnují název hostitele centra IoT, ID zařízení a informace, které zařízení používá k ověření ve službě IoT Hub.

Kroky v tomto článku vás provedou procesem označovaným jako ruční zřizování, kdy připojíte jedno zařízení ke svému centru IoT. Pro ruční zřizování máte dvě možnosti ověřování zařízení IoT Edge:

  • Symetrické klíče: Když ve službě IoT Hub vytvoříte novou identitu zařízení, služba vytvoří dva klíče. Umístíte na zařízení jeden z klíčů a při ověřování ho předá službě IoT Hub.

    Tato metoda ověřování je rychlejší, než začít, ale není tak zabezpečená.

  • X.509 podepsané svým držitelem: Vytvoříte dva certifikáty identity X.509 a umístíte je do zařízení. Když ve službě IoT Hub vytvoříte novou identitu zařízení, poskytnete kryptografické otisky z obou certifikátů. Když se zařízení ověří ve službě IoT Hub, zobrazí jeden certifikát a IoT Hub ověří, že certifikát odpovídá jeho kryptografickému otisku.

    Tato metoda ověřování je bezpečnější a doporučuje se pro produkční scénáře.

Tento článek popisuje použití certifikátů X.509 jako metody ověřování. Pokud chcete použít symetrické klíče, přečtěte si téma Vytvoření a zřízení zařízení IoT Edge v Linuxu pomocí symetrických klíčů.

Poznámka:

Pokud máte mnoho zařízení k nastavení a nechcete je zřizovat ručně, pomocí jednoho z následujících článků se dozvíte, jak IoT Edge funguje se službou zřizování zařízení IoT Hub:

Požadavky

Tento článek popisuje registraci zařízení IoT Edge a instalaci IoT Edge na zařízení. Tyto úlohy mají různé požadavky a nástroje, které je používají k jejich provedení. Než budete pokračovat, ujistěte se, že máte probírané všechny požadavky.

Nástroje pro správu zařízení

Postup registrace zařízení můžete provést pomocí webu Azure Portal, editoru Visual Studio Code nebo Azure CLI . Každý nástroj má vlastní požadavky nebo může být potřeba nainstalovat:

Bezplatné nebo standardní centrum IoT ve vašem předplatném Azure.

Požadavky na zařízení

Zařízení S Linuxem X64, ARM32 nebo ARM64.

Microsoft publikuje instalační balíčky pro různé operační systémy.

Nejnovější informace o tom, které operační systémy jsou aktuálně podporovány v produkčních scénářích, najdete v tématu Podporované systémy Azure IoT Edge.

Generování certifikátů identit zařízení

Ruční zřizování pomocí certifikátů X.509 vyžaduje IoT Edge verze 1.0.10 nebo novější.

Když zřídíte zařízení IoT Edge s certifikáty X.509, použijete to, čemu se říká certifikát identity zařízení. Tento certifikát se používá jenom ke zřízení zařízení IoT Edge a k ověřování zařízení pomocí Azure IoT Hubu. Jedná se o listový certifikát, který nepodepisuje jiné certifikáty. Certifikát identity zařízení je oddělený od certifikátů certifikační autority (CA), které zařízení IoT Edge prezentuje modulům nebo podřízeným zařízením pro ověření.

Pro ověřování certifikátů X.509 se ověřovací informace o jednotlivých zařízeních poskytují ve formě kryptografických otisků převzatých z certifikátů identity zařízení. Tyto kryptografické otisky se službě IoT Hub předávají v době registrace zařízení, aby služba při připojení zařízení rozpoznala zařízení.

Další informace o tom, jak se certifikáty certifikační autority používají v zařízeních IoT Edge, najdete v tématu Vysvětlení toho, jak Azure IoT Edge používá certifikáty.

K ručnímu zřizování v X.509 potřebujete následující soubory:

  • Dva certifikáty identity zařízení s odpovídajícími certifikáty privátního klíče ve formátech .cer nebo .pem. K obměně certifikátů potřebujete dva certifikáty identity zařízení. Osvědčeným postupem je připravit dva různé certifikáty identity zařízení s různými daty vypršení platnosti. Pokud vyprší platnost jednoho certifikátu, druhý je stále platný a máte čas otočit certifikát, jehož platnost vypršela.

    Do modulu runtime IoT Edge je k dispozici jedna sada souborů certifikátů a klíčů. Při vytváření certifikátů identit zařízení nastavte běžný název certifikátu (CN) s ID zařízení, které má mít zařízení ve vašem centru IoT.

  • Kryptografické otisky převzaté z obou certifikátů identity zařízení. IoT Hub vyžaduje při registraci zařízení IoT Edge dva kryptografické otisky. K registraci můžete použít jenom jeden certifikát. Pokud chcete použít jeden certifikát, nastavte stejný kryptografický otisk certifikátu pro primární i sekundární kryptografické otisky při registraci zařízení.

    Hodnoty kryptografického otisku jsou 40 šestnáctkové znaky pro hodnoty hash SHA-1 nebo 64 šestnáctkové znaky pro hodnoty hash SHA-256. Oba kryptografické otisky jsou k dispozici službě IoT Hub v době registrace zařízení.

    Jedním ze způsobů, jak načíst kryptografický otisk z certifikátu, je následující příkaz openssl:

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

    Kryptografický otisk je součástí výstupu tohoto příkazu. Příklad:

    SHA1 Fingerprint=D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12
    

Pokud nemáte k dispozici certifikáty, můžete vytvořit ukázkové certifikáty pro testování funkcí zařízení IoT Edge. Podle pokynů v tomto článku nastavte skripty pro vytváření certifikátů, vytvořte kořenový certifikát certifikační autority a vytvořte certifikát identity zařízení IoT Edge. Pro účely testování můžete vytvořit jeden certifikát identity zařízení a použít stejný kryptografický otisk pro primární i sekundární hodnoty kryptografického otisku při registraci zařízení ve službě IoT Hub.

Registrace zařízení

K registraci zařízení můžete použít Azure Portal, Visual Studio Code nebo Azure CLI v závislosti na vašich preferencích.

V centru IoT na webu Azure Portal se zařízení IoT Edge vytvářejí a spravují odděleně od zařízení IoT, která nejsou povolená hraniční zařízení.

  1. Přihlaste se k webu Azure Portal a přejděte do centra IoT.

  2. V levém podokně vyberte v nabídce zařízení a pak vyberte Přidat zařízení.

  3. Na stránce Vytvořit zařízení zadejte následující informace:

    • Vytvořte popisné ID zařízení. Poznamenejte si toto ID zařízení, jak ho použijete později.
    • Zaškrtněte políčko Zařízení IoT Edge.
    • Jako typ ověřování vyberte X.509 podepsané svým držitelem .
    • Zadejte kryptografické otisky primárního a sekundárního certifikátu identity. Hodnoty kryptografického otisku jsou 40 šestnáctkové znaky pro hodnoty hash SHA-1 nebo 64 šestnáctkové znaky pro hodnoty hash SHA-256. Azure Portal podporuje pouze šestnáctkové hodnoty. Před zadáním na portál odeberte oddělovače sloupců a mezery z hodnot kryptografického otisku. Například D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12 je zadán jako D268D9049F1A4D6AFD8477687BC633C032375112.

    Tip

    Pokud testujete a chcete použít jeden certifikát, můžete použít stejný certifikát pro primární i sekundární kryptografické otisky.

  4. Zvolte Uložit.

Teď, když máte zařízení zaregistrované ve službě IoT Hub, načtěte informace, které používáte k dokončení instalace a zřizování modulu runtime IoT Edge.

Zobrazení registrovaných zařízení a načtení informací o zřizování

Zařízení, která používají ověřování certifikátů X.509, potřebují název centra IoT, název zařízení a soubory certifikátů k dokončení instalace a zřizování modulu runtime IoT Edge.

Hraniční zařízení, která se připojují k centru IoT, jsou uvedená na stránce Zařízení . Seznam můžete filtrovat podle typu zařízení IoT Edge.

Instalace IoT Edge

V této části připravíte virtuální počítač s Linuxem nebo fyzické zařízení pro IoT Edge. Pak nainstalujete IoT Edge.

Spuštěním následujících příkazů přidejte úložiště balíčků a potom přidejte podpisový klíč balíčku Microsoftu do seznamu důvěryhodných klíčů.

Důležité

30. června 2022 Raspberry Pi OS Stretch byl vyřazen ze seznamu podpory operačního systému vrstvy 1. Abyste se vyhnuli potenciálním ohrožením zabezpečení, aktualizujte hostitelský operační systém na Bullseye.

Pro operační systémy platformy s podporou vrstvy 2 jsou instalační balíčky dostupné ve verzích Azure IoT Edge. Postup instalace najdete v offline nebo konkrétní instalaci verze.

Instalaci je možné provést několika příkazy. Otevřete terminál a spusťte následující příkazy:

  • 24.04:

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

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 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
    

Další informace o verzích operačního systému najdete na podporovaných platformách Azure IoT Edge.

Poznámka:

Softwarové balíčky Azure IoT Edge podléhají licenčním podmínkám umístěným v jednotlivých balíčcích (usr/share/doc/{package-name} nebo adresáři LICENSE ). Přečtěte si licenční podmínky před použitím balíčku. Vaše instalace a použití balíčku představuje vaše přijetí těchto podmínek. Pokud s licenčními podmínkami nesouhlasíte, nepoužívejte tento balíček.

Instalace modulu kontejneru

Azure IoT Edge spoléhá na modul runtime kontejneru kompatibilní s OCI. Pro produkční scénáře doporučujeme použít modul Moby. Modul Moby je kontejnerový modul oficiálně podporovaný službou IoT Edge. Image kontejnerů Dockeru CE/EE jsou kompatibilní s modulem runtime Moby. Pokud používáte moduly snaps Ubuntu Core, bude modul snap Dockeru obsluhován canonical a podporován pro produkční scénáře.

Nainstalujte modul Moby.

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

Ve výchozím nastavení modul kontejneru nenastavuje limity velikosti protokolu kontejneru. Časem to může vést k zaplnění zařízení protokoly a vyčerpání místa na disku. Protokol ale můžete nakonfigurovat tak, aby se zobrazoval místně, i když je volitelný. Další informace o konfiguraci protokolování najdete v kontrolním seznamu produkčního nasazení.

Následující kroky ukazují, jak nakonfigurovat kontejner tak, aby jako mechanismus protokolování používal local ovladač protokolování.

  1. Vytvoření nebo úprava konfiguračního souboru existujícího procesu démona Dockeru

    sudo nano /etc/docker/daemon.json
    
  2. Nastavte výchozí ovladač protokolování na local ovladač protokolování, jak je znázorněno v příkladu.

       {
          "log-driver": "local"
       }
    
  3. Restartujte modul kontejneru, aby se změny projevily.

    sudo systemctl restart docker
    

Instalace modulu runtime IoT Edge

Služba IoT Edge poskytuje a udržuje standardy zabezpečení na zařízení IoT Edge. Služba se spustí při každém spuštění a spuštění zařízení spuštěním zbytku modulu runtime IoT Edge.

Poznámka:

Počínaje verzí 1.2 služba identit IoT zpracovává zřizování a správu identit pro IoT Edge a pro další komponenty zařízení, které potřebují komunikovat se službou IoT Hub.

Kroky v této části představují typický proces instalace nejnovější verze IoT Edge na zařízení s připojením k internetu. Pokud potřebujete nainstalovat konkrétní verzi, jako je předběžná verze, nebo je potřeba ji nainstalovat offline, postupujte podle pokynů pro offline nebo konkrétní instalaci verze dále v tomto článku.

Tip

Pokud už máte zařízení IoT Edge se starší verzí a chcete upgradovat na nejnovější verzi, postupujte podle pokynů v tématu Aktualizace démona zabezpečení a modulu runtime ioT Edge. Novější verze se dostatečně liší od předchozích verzí IoT Edge, které jsou potřeba k upgradu konkrétní kroky.

Nainstalujte nejnovější verzi IoT Edge a balíček služby identit IoT (pokud ještě nejste aktuální):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Volitelný defender-iot-micro-agent-edge balíček zahrnuje mikro-agenta zabezpečení v programu Microsoft Defender for IoT, který poskytuje přehled o správě stavu zabezpečení, ohrožení zabezpečení, detekci hrozeb, správě vozového parku a další prvky, které vám pomůžou zabezpečit vaše zařízení IoT Edge. Doporučujeme nainstalovat mikro agenta s agentem Edge, abyste umožnili monitorování zabezpečení a posílení zabezpečení zařízení Edge. Další informace o programu Microsoft Defender for IoT najdete v tématu Co je Microsoft Defender for IoT pro tvůrce zařízení.

Zřízení zařízení s využitím cloudové identity

Teď, když je na vašem zařízení nainstalovaný modul kontejneru a modul runtime IoT Edge, jste připraveni zařízení nastavit s jeho cloudovou identitou a ověřovacími informacemi.

  1. Vytvořte konfigurační soubor pro vaše zařízení na základě souboru šablony, který je součástí instalace IoT Edge.

    sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
    
  2. Na zařízení IoT Edge otevřete konfigurační soubor.

    sudo nano /etc/aziot/config.toml
    
  3. Vyhledejte část Zřizování souboru a odkomentujte řádky pro ruční zřizování pomocí certifikátu identity X.509. Ujistěte se, že jsou všechny ostatní oddíly zřizování okomentované.

    # Manual provisioning with x.509 certificates
    [provisioning]
    source = "manual"
    iothub_hostname = "REQUIRED_IOTHUB_HOSTNAME"
    device_id = "REQUIRED_DEVICE_ID_PROVISIONED_IN_IOTHUB"
    
    [provisioning.authentication]
    method = "x509"
    
    identity_cert = "REQUIRED_URI_OR_POINTER_TO_DEVICE_IDENTITY_CERTIFICATE"
    
    identity_pk = "REQUIRED_URI_TO_DEVICE_IDENTITY_PRIVATE_KEY"
    

Aktualizujte následující pole:

  • iothub_hostname: Název hostitele ioT Hubu, ke které se zařízení připojuje. Například {IoT hub name}.azure-devices.net.
  • device_id: ID, které jste zadali při registraci zařízení.
  • identity_cert: Identifikátor URI certifikátu identity v zařízení, například: file:///path/identity_certificate.pem. Nebo dynamicky vydávat certifikát pomocí EST nebo místní certifikační autority.
  • identity_pk: Identifikátor URI k souboru privátního klíče poskytnutého certifikátu identity, například: file:///path/identity_key.pem. Nebo zadejte identifikátor URI PKCS#11 a potom zadejte informace o konfiguraci v souboru .

Část PKCS#11 dále v konfiguračním souboru.

Další informace o certifikátech najdete v tématu Správa certifikátů IoT Edge.

Soubor uložte a zavřete.

CTRL + X, , YEnter

Po zadání informací o zřizování v konfiguračním souboru použijte změny:

sudo iotedge config apply

Nasazení modulů

Pokud chcete nasadit moduly IoT Edge, přejděte do centra IoT na webu Azure Portal a pak:

  1. V nabídce IoT Hubu vyberte zařízení .

  2. Výběrem zařízení otevřete stránku.

  3. Vyberte kartu Nastavit moduly.

  4. Vzhledem k tomu, že chceme nasadit výchozí moduly IoT Edge (edgeAgent a edgeHub), nemusíme do tohoto podokna přidávat žádné moduly, takže dole vyberte Zkontrolovat a vytvořit .

  5. Zobrazí se potvrzení JSON modulů. Výběrem možnosti Vytvořit nasadíte moduly.<

Další informace najdete v tématu Nasazení modulu.

Ověření úspěšné konfigurace

Ověřte, že se modul runtime úspěšně nainstaloval a nakonfiguroval na zařízení IoT Edge.

Tip

Ke spouštění příkazů iotedge potřebujete zvýšená oprávnění. Vaše oprávnění se automaticky aktualizují, jakmile se po instalaci modulu runtime IoT Edge odhlásíte z počítače a poprvé se k němu opět přihlásíte. Do té doby použijte sudo před příkazy.

Zkontrolujte, jestli je spuštěná systémová služba IoT Edge.

sudo iotedge system status

Úspěšná odpověď na stav je Ok.

Pokud potřebujete řešit potíže se službou, načtěte protokoly služby.

sudo iotedge system logs

check Pomocí nástroje ověřte konfiguraci a stav připojení zařízení.

sudo iotedge check

Můžete očekávat rozsah odpovědí, které můžou obsahovat OK (zelená), Upozornění (žlutá) nebo Chyba (červená). Informace o řešení běžných chyb najdete v tématu Řešení běžných problémů se službou Azure IoT Edge.

Snímek obrazovky s ukázkovými odpověďmi z příkazu pro kontrolu

Tip

Vždy se používá sudo ke spuštění nástroje pro kontrolu, a to i po aktualizaci oprávnění. Nástroj potřebuje zvýšená oprávnění pro přístup ke konfiguračnímu souboru, aby ověřil stav konfigurace.

Poznámka:

Na nově zřízeném zařízení se může zobrazit chyba související se službou IoT Edge Hub:

× provozní připravenosti: Adresář úložiště Edge Hubu je trvalý v systému souborů hostitele – chyba

Nepodařilo se zkontrolovat aktuální stav kontejneru EdgeHub.

Tato chyba se očekává na nově zřízeném zařízení, protože modul IoT Edge Hub není spuštěný. Pokud chcete tuto chybu vyřešit, nastavte v IoT Hubu moduly pro zařízení a vytvořte nasazení. Vytvoření nasazení pro zařízení spustí moduly na zařízení, včetně modulu IoT Edge Hubu.

Zobrazte všechny moduly spuštěné na vašem zařízení IoT Edge. Při prvním spuštění služby byste měli vidět pouze spuštěný modul edgeAgent . Modul edgeAgent běží ve výchozím nastavení a pomáhá nainstalovat a spustit všechny další moduly, které nasadíte do zařízení.

sudo iotedge list

Když vytvoříte nové zařízení IoT Edge, zobrazí se na webu Azure Portal stavový kód 417 -- The device's deployment configuration is not set . Tento stav je normální a znamená, že zařízení je připravené přijmout nasazení modulu.

Offline nebo konkrétní instalace verze (volitelné)

Kroky v této části jsou určené pro scénáře, na které se nevztahují standardní kroky instalace. Může to zahrnovat:

  • Instalace IoT Edge v offline režimu
  • Instalace verze Candidate

Pokud chcete nainstalovat konkrétní verzi modulu runtime Azure IoT Edge, která není dostupná prostřednictvím správce balíčků, postupujte podle kroků v této části. Seznam balíčků Společnosti Microsoft obsahuje pouze omezenou sadu posledních verzí a jejich dílčích verzí, takže tyto kroky jsou určené pro každého, kdo chce nainstalovat starší verzi nebo verzi Release Candidate.

Pokud používáte přichycení Ubuntu, můžete si ho stáhnout a nainstalovat offline. Další informace najdete v tématu Stažení přichycení a instalace offline.

Pomocí příkazů curl můžete soubory komponent cílit přímo z úložiště GitHub ioT Edge.

  1. Přejděte do verzí Azure IoT Edge a vyhledejte verzi verze, na kterou chcete cílit.

  2. Rozbalte část Prostředky pro tuto verzi.

  3. Každá verze by měla mít nové soubory pro IoT Edge a službu identit. Pokud na offline zařízení nainstalujete IoT Edge, stáhněte si tyto soubory předem. V opačném případě tyto komponenty aktualizujte pomocí následujících příkazů.

    1. Vyhledejte soubor aziot-identity-service, který odpovídá architektuře zařízení IoT Edge. Klikněte pravým tlačítkem myši na odkaz na soubor a zkopírujte adresu odkazu.

    2. Pomocí zkopírovaného odkazu v následujícím příkazu nainstalujte tuto verzi služby identit:

      curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
      

    1. Najděte soubor aziot-edge, který odpovídá architektuře zařízení IoT Edge. Klikněte pravým tlačítkem myši na odkaz na soubor a zkopírujte adresu odkazu.

    2. Pomocí zkopírovaného odkazu v následujícím příkazu nainstalujte tuto verzi IoT Edge.

      curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
      

Odinstalace IoT Edge

Pokud chcete ze zařízení odebrat instalaci IoT Edge, použijte následující příkazy.

Odeberte modul runtime IoT Edge.

sudo apt-get autoremove --purge aziot-edge

Pokud plánujete přeinstalovat IoT Edge a používat stejné konfigurační informace v budoucnu, ponechte --purge příznak. Příznaky --purge odstraní všechny soubory přidružené k IoT Edge, včetně vašich konfiguračních souborů.

Po odebrání modulu runtime IoT Edge se zastaví všechny kontejnery, které vytvořil, ale na vašem zařízení stále existují. Zobrazte všechny kontejnery a podívejte se, které z nich zůstanou.

sudo docker ps -a

Odstraňte kontejnery ze zařízení, včetně těchto dvou kontejnerů modulu runtime.

sudo docker rm -f <container name>

Nakonec ze zařízení odeberte modul runtime kontejneru.

sudo apt-get autoremove --purge moby-engine