Share via


Skapa och etablera IoT Edge enheter i stor skala i Windows med X.509-certifikat

Gäller för:ja-ikonen IoT Edge 1.1

Viktigt

IoT Edge 1.1 slutdatum var den 13 december 2022. I informationen om Microsoft-produktens livscykel hittar du fler uppgifter om vilken support som gäller för denna produkt, tjänst, teknik eller detta API. Mer information om hur du uppdaterar till den senaste versionen av IoT Edge finns i Uppdatera IoT Edge.

Den här artikeln innehåller instruktioner från slutpunkt till slutpunkt för automatisk avetablering av en eller flera Windows-IoT Edge-enheter med X.509-certifikat. Du kan automatiskt etablera Azure IoT Edge-enheter med Azure IoT Hub enhetsetableringstjänst (DPS). Om du inte känner till processen för automatisk avetablering läser du etableringsöversikten innan du fortsätter.

Anteckning

Azure IoT Edge med Windows-containrar stöds inte från och med version 1.2 av Azure IoT Edge.

Överväg att använda den nya metoden för att köra IoT Edge på Windows-enheter, Azure IoT Edge för Linux i Windows.

Om du vill använda Azure IoT Edge för Linux i Windows kan du följa stegen i motsvarande instruktionsguide.

Uppgifterna är följande:

  1. Generera certifikat och nycklar.
  2. Skapa antingen en enskild registrering för en enskild enhet eller en gruppregistrering för en uppsättning enheter.
  3. Installera IoT Edge-körningen och registrera enheten med IoT Hub.

Att använda X.509-certifikat som en attesteringsmekanism är ett utmärkt sätt att skala produktionen och förenkla enhetsetablering. Vanligtvis ordnas X.509-certifikat i en förtroendekedja för certifikat. Från och med ett självsignerat eller betrott rotcertifikat signerar varje certifikat i kedjan nästa lägre certifikat. Det här mönstret skapar en delegerad förtroendekedja från rotcertifikatet nedåt via varje mellanliggande certifikat till det slutliga underordnade enhetscertifikatet som är installerat på en enhet.

Förutsättningar

Molnresurser

  • En aktiv IoT-hubb
  • En instans av IoT Hub enhetsetableringstjänst i Azure som är länkad till din IoT-hubb

Krav på enheten

En fysisk eller virtuell Windows-enhet som ska vara den IoT Edge enheten.

Generera enhetsidentitetscertifikat

Enhetsidentitetscertifikatet är ett underordnat enhetscertifikat som ansluter via en förtroendekedja till det översta CERTIFIKATutfärdarcertifikatet (CA) för X.509. Enhetsidentitetscertifikatet måste ha sitt eget namn (CN) inställt på det enhets-ID som du vill att enheten ska ha i IoT-hubben.

Enhetsidentitetscertifikat används endast för att etablera IoT Edge-enheten och autentisera enheten med Azure IoT Hub. De signerar inte certifikat, till skillnad från de CA-certifikat som IoT Edge-enheten presenterar för moduler eller underordnade enheter för verifiering. Mer information finns i Information om användning av Azure IoT Edge certifikat.

När du har skapat enhetsidentitetscertifikatet bör du ha två filer: en .cer- eller .pem-fil som innehåller den offentliga delen av certifikatet och en .cer- eller .pem-fil med certifikatets privata nyckel. Om du planerar att använda gruppregistrering i DPS behöver du också den offentliga delen av ett mellanliggande certifikat eller rotcertifikatutfärdarcertifikat i samma certifikatkedja med förtroende.

Du behöver följande filer för att konfigurera automatisk etablering med X.509:

  • Enhetsidentitetscertifikatet och dess privata nyckelcertifikat. Enhetsidentitetscertifikatet laddas upp till DPS om du skapar en enskild registrering. Den privata nyckeln skickas till IoT Edge-körningen.
  • Ett fullständigt kedjecertifikat som ska ha minst enhetsidentiteten och mellanliggande certifikat i det. Det fullständiga kedjecertifikatet skickas till IoT Edge-körningen.
  • Ett mellanliggande certifikat eller rotcertifikatutfärdarcertifikat från certifikatkedjan för förtroende. Det här certifikatet laddas upp till DPS om du skapar en gruppregistrering.

Anteckning

För närvarande förhindrar en begränsning i libiothsm användningen av certifikat som upphör att gälla den 1 januari 2038 eller senare.

Använda testcertifikat (valfritt)

Om du inte har någon certifikatutfärdare tillgänglig för att skapa nya identitetscertifikat och vill prova det här scenariot innehåller Azure IoT Edge git-lagringsplats skript som du kan använda för att generera testcertifikat. Dessa certifikat är endast utformade för utvecklingstestning och får inte användas i produktion.

Om du vill skapa testcertifikat följer du stegen i Skapa democertifikat för att testa IoT Edge enhetsfunktioner. Slutför de två avsnitt som krävs för att konfigurera certifikatgenereringsskripten och skapa ett rotcertifikatutfärdarcertifikat. Följ sedan stegen för att skapa ett enhetsidentitetscertifikat. När du är klar bör du ha följande certifikatkedja och nyckelpar:

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

Du behöver båda dessa certifikat på den IoT Edge enheten. Om du ska använda individuell registrering i DPS laddar du upp .cert.pem-filen. Om du ska använda gruppregistrering i DPS behöver du också ett mellanliggande certifikat eller rotcertifikatutfärdarcertifikat i samma certifikatkedja för att ladda upp. Om du använder democertifikat använder du certifikatet <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem för gruppregistrering.

Skapa en DPS-registrering

Använd dina genererade certifikat och nycklar för att skapa en registrering i DPS för en eller flera IoT Edge enheter.

Om du vill etablera en enda IoT Edge enhet skapar du en enskild registrering. Om du behöver flera etablerade enheter följer du stegen för att skapa en DPS-gruppregistrering.

När du skapar en registrering i DPS har du möjlighet att deklarera ett initialt enhetstvillingtillstånd. I enhetstvillingen kan du ange taggar för att gruppera enheter efter de mått du behöver i din lösning, till exempel region, miljö, plats eller enhetstyp. Dessa taggar används för att skapa automatiska distributioner.

Mer information om registreringar i enhetsetableringstjänsten finns i Hantera enhetsregistreringar.

Skapa en individuell DPS-registrering

Enskilda registreringar tar den offentliga delen av en enhets identitetscertifikat och matchar det med certifikatet på enheten.

Tips

Stegen i den här artikeln gäller för Azure Portal, men du kan också skapa enskilda registreringar med hjälp av Azure CLI. Mer information finns i az iot dps enrollment (az iot dps enrollment). Som en del av CLI-kommandot använder du den gränsaktiverade flaggan för att ange att registreringen är för en IoT Edge enhet.

  1. I Azure Portal navigerar du till din instans av IoT Hub enhetsetableringstjänst.

  2. Under Inställningar väljer du Hantera registreringar.

  3. Välj Lägg till enskild registrering och slutför sedan följande steg för att konfigurera registreringen:

    • Mekanism: Välj X.509.

    • Primär certifikat.pem- eller .cer-fil: Ladda upp den offentliga filen från enhetens identitetscertifikat. Om du använde skripten för att generera ett testcertifikat väljer du följande fil:

      <WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem

    • IoT Hub Enhets-ID: Ange ett ID för enheten om du vill. Du kan använda enhets-ID:n för att rikta in dig på en enskild enhet för moduldistribution. Om du inte anger något enhets-ID används det gemensamma namnet (CN) i X.509-certifikatet.

    • IoT Edge enhet: Välj Sant för att deklarera att registreringen gäller för en IoT Edge enhet.

    • Välj de IoT-hubbar som enheten kan tilldelas: Välj den länkade IoT-hubb som du vill ansluta enheten till. Du kan välja flera hubbar och enheten tilldelas till en av dem enligt den valda allokeringsprincipen.

    • Initialt enhetstvillingtillstånd: Lägg till ett taggvärde som ska läggas till i enhetstvillingen om du vill. Du kan använda taggar till målgrupper med enheter för automatisk distribution. Ett exempel:

      {
          "tags": {
             "environment": "test"
          },
          "properties": {
             "desired": {}
          }
      }
      
  4. Välj Spara.

Under Hantera registreringar kan du se registrerings-ID:t för den registrering som du nyss skapade. Anteckna det eftersom det kan användas när du etablerar enheten.

Nu när det finns en registrering för den här enheten kan IoT Edge-körningen automatiskt etablera enheten under installationen.

Installera IoT Edge

I det här avsnittet förbereder du din virtuella Windows-dator eller fysiska enhet för IoT Edge. Sedan installerar du IoT Edge.

Azure IoT Edge förlitar sig på en OCI-kompatibel containerkörning. Moby, en Moby-baserad motor, ingår i installationsskriptet, vilket innebär att det inte finns några ytterligare steg för att installera motorn.

Så här installerar du IoT Edge-körningen:

  1. Kör PowerShell som administratör.

    Använd en AMD64-session i PowerShell, inte PowerShell(x86). Om du är osäker på vilken sessionstyp du använder kör du följande kommando:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Kör kommandot Deploy-IoTEdge , som utför följande uppgifter:

    • Kontrollerar att Windows-datorn har en version som stöds
    • Aktiverar containerfunktionen
    • Laddar ned moby-motorn och IoT Edge-körningen
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. Starta om enheten om du uppmanas att göra det.

När du installerar IoT Edge på en enhet kan du använda ytterligare parametrar för att ändra processen, inklusive:

  • Dirigera trafik för att gå via en proxyserver
  • Peka installationsprogrammet på en lokal katalog för offlineinstallation

Mer information om dessa ytterligare parametrar finns i PowerShell-skript för IoT Edge med Windows-containrar.

Etablera enheten med sin molnidentitet

När körningen har installerats på enheten konfigurerar du enheten med den information den använder för att ansluta till enhetsetableringstjänsten och IoT Hub.

Ha följande information klar:

  • DPS ID-omfångsvärdet . Du kan hämta det här värdet från översiktssidan för DPS-instansen i Azure Portal.
  • Enhetens identitetscertifikatkedjefil på enheten.
  • Enhetens identitetsnyckelfil på enheten.
  1. Öppna ett PowerShell-fönster i administratörsläge. Se till att använda en AMD64-session i PowerShell när du installerar IoT Edge, inte PowerShell (x86).

  2. Kommandot Initialize-IoTEdge konfigurerar IoT Edge-körningen på datorn. Kommandot är standard för manuell etablering med Windows-containrar, så använd -DpsX509 flaggan för att använda automatisk etablering med X.509-certifikatautentisering.

    Ersätt platshållarvärdena för scope_id, identity cert chain pathoch identity key path med lämpliga värden från DPS-instansen och filsökvägarna på enheten.

    Lägg till parametern -RegistrationId paste_registration_id_here om du vill ange enhets-ID:t som något annat än CN-namnet på identitetscertifikatet.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -DpsX509 -ScopeId paste_scope_id_here -X509IdentityCertificate paste_identity_cert_chain_path_here -X509IdentityPrivateKey paste_identity_key_path_here
    

    Tips

    Konfigurationsfilen lagrar certifikat- och nyckelinformationen som fil-URI:er. Kommandot Initialize-IoTEdge hanterar dock det här formateringssteget åt dig, så att du kan ange den absoluta sökvägen till certifikat- och nyckelfilerna på enheten.

Kontrollera att installationen har slutförts

Om körningen har startats kan du gå in i IoT Hub och börja distribuera IoT Edge moduler till enheten.

Du kan kontrollera att den enskilda registreringen som du skapade i enhetsetableringstjänsten användes. Gå till din instans av enhetsetableringstjänsten i Azure Portal. Öppna registreringsinformationen för den enskilda registrering som du skapade. Observera att statusen för registreringen har tilldelats och att enhets-ID:t visas.

Använd följande kommandon på enheten för att kontrollera att IoT Edge installerat och startat.

Kontrollera status för IoT Edge-tjänsten.

Get-Service iotedge

Granska tjänstloggar.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog

Lista med moduler som körs.

iotedge list

Nästa steg

Med registreringsprocessen för enhetsetableringstjänsten kan du ange taggar för enhets-ID och enhetstvilling samtidigt som du etablerar den nya enheten. Du kan använda dessa värden för att rikta in dig på enskilda enheter eller grupper av enheter med hjälp av automatisk enhetshantering. Lär dig hur du distribuerar och övervakar IoT Edge moduler i stor skala med hjälp av Azure Portal eller med Hjälp av Azure CLI.