Dela via


Skapa och etablera en IoT Edge för Linux på Windows-enhet med X.509-certifikat

Gäller för:Bockmarkering för IoT Edge 1.4 IoT Edge 1.4

Viktigt!

IoT Edge 1.5 LTS och IoT Edge 1.4 stöds. IoT Edge 1.4 LTS upphör den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.

Den här artikeln innehåller instruktioner från slutpunkt till slutpunkt för registrering och etablering av en IoT Edge för Linux på Windows-enheter.

Varje enhet som ansluter till en IoT-hubb har ett enhets-ID som används för att spåra kommunikation från moln till enhet eller från enhet till moln. Du konfigurerar en enhet med dess anslutningsinformation, som innehåller IoT Hub-värdnamnet, enhets-ID:t och den information som enheten använder för att autentisera till IoT Hub.

Stegen i den här artikeln går igenom en process som kallas manuell etablering, där du ansluter en enda enhet till dess IoT-hubb. För manuell etablering har du två alternativ för att autentisera IoT Edge-enheter:

  • Symmetriska nycklar: När du skapar en ny enhetsidentitet i IoT Hub skapar tjänsten två nycklar. Du placerar en av nycklarna på enheten och den visar nyckeln till IoT Hub när du autentiserar.

    Den här autentiseringsmetoden går snabbare att komma igång, men inte lika säker.

  • X.509 självsignerade: Du skapar två X.509-identitetscertifikat och placerar dem på enheten. När du skapar en ny enhetsidentitet i IoT Hub anger du tumavtryck från båda certifikaten. När enheten autentiseras till IoT Hub visas ett certifikat och IoT Hub verifierar att certifikatet matchar tumavtrycket.

    Den här autentiseringsmetoden är säkrare och rekommenderas för produktionsscenarier.

Den här artikeln beskriver hur du använder X.509-certifikat som autentiseringsmetod. Om du vill använda symmetriska nycklar kan du läsa Skapa och etablera en IoT Edge för Linux på Windows-enheter med symmetriska nycklar.

Kommentar

Om du har många enheter att konfigurera och inte vill etablera var och en manuellt använder du någon av följande artiklar för att lära dig hur IoT Edge fungerar med IoT Hub-enhetsetableringstjänsten:

Förutsättningar

Den här artikeln beskriver hur du registrerar din IoT Edge-enhet och installerar IoT Edge för Linux i Windows. Dessa uppgifter har olika förutsättningar och verktyg som används för att utföra dem. Kontrollera att du har alla förutsättningar som omfattas innan du fortsätter.

Verktyg för enhetshantering

Du kan använda Azure-portalen, Visual Studio Code eller Azure CLI för stegen för att registrera din enhet. Varje verktyg har sina egna förutsättningar eller kan behöva installeras:

En kostnadsfri eller standard-IoT-hubb i din Azure-prenumeration.

Enhetskrav

En Windows-enhet med följande minimikrav:

  • Systemkrav

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 och Windows Server 2019 minsta version 17763 med alla aktuella kumulativa uppdateringar installerade.
  • Maskinvarukrav

    • Minsta lediga minne: 1 GB
    • Minsta lediga diskutrymme: 10 GB
  • Stöd för virtualisering

  • Nätverksstöd

    • Windows Server har ingen standardväxel. Innan du kan distribuera EFLOW till en Windows Server-enhet måste du skapa en virtuell växel. Mer information finns i Skapa virtuell växel för Linux i Windows.
    • Windows Desktop-versioner levereras med en standardväxel som kan användas för EFLOW-installation. Om det behövs kan du skapa en egen anpassad virtuell växel.

Dricks

Om du vill använda GPU-accelererade Linux-moduler i din Azure IoT Edge för Linux i Windows-distributionen finns det flera konfigurationsalternativ att tänka på.

Du måste installera rätt drivrutiner beroende på din GPU-arkitektur och du kan behöva åtkomst till en Windows Insider Program-version. Information om hur du fastställer dina konfigurationsbehov och uppfyller dessa krav finns i GPU-acceleration för Azure IoT Edge för Linux i Windows.

Se till att du tar dig tid att uppfylla kraven för GPU-acceleration nu. Du måste starta om installationsprocessen om du vill ha GPU-acceleration under installationen.

Utvecklingsverktyg

Förbered målenheten för installationen av Azure IoT Edge för Linux i Windows och distributionen av den virtuella Linux-datorn:

  1. Ange körningsprincipen på målenheten till AllSigned. Du kan kontrollera den aktuella körningsprincipen i en upphöjd PowerShell-prompt med hjälp av följande kommando:

    Get-ExecutionPolicy -List
    

    Om körningsprincipen för inte AllSignedär kan du ange körningsprincipen med hjälp avlocal machine:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Mer information om Azure IoT Edge för Linux i Windows PowerShell-modulen finns i PowerShell-funktionsreferensen.

Generera enhetsidentitetscertifikat

Manuell etablering med X.509-certifikat kräver IoT Edge version 1.0.10 eller senare.

När du etablerar en IoT Edge-enhet med X.509-certifikat använder du det som kallas ett enhetsidentitetscertifikat. Det här certifikatet används endast för att etablera en IoT Edge-enhet och autentisera enheten med Azure IoT Hub. Det är ett lövcertifikat som inte signerar andra certifikat. Enhetsidentitetscertifikatet är separat från certifikatutfärdarens certifikat (CA) som IoT Edge-enheten presenterar för moduler eller underordnade enheter för verifiering.

För X.509-certifikatautentisering tillhandahålls varje enhets autentiseringsinformation i form av tumavtryck från enhetsidentitetscertifikaten. Dessa tumavtryck ges till IoT Hub vid tidpunkten för enhetsregistreringen så att tjänsten kan känna igen enheten när den ansluter.

Mer information om hur CA-certifikaten används i IoT Edge-enheter finns i Förstå hur Azure IoT Edge använder certifikat.

Du behöver följande filer för manuell etablering med X.509:

  • Två enhetsidentitetscertifikat med matchande privata nyckelcertifikat i .cer- eller .pem-format. Du behöver två enhetsidentitetscertifikat för certifikatrotation. Bästa praxis är att förbereda två olika enhetsidentitetscertifikat med olika förfallodatum. Om det ena certifikatet upphör att gälla är det andra fortfarande giltigt och ger dig tid att rotera det utgångna certifikatet.

    En uppsättning certifikat- och nyckelfiler tillhandahålls till IoT Edge-körningen. När du skapar enhetsidentitetscertifikat anger du certifikatets gemensamma namn (CN) med det enhets-ID som du vill att enheten ska ha i din IoT-hubb.

  • Tumavtryck som hämtats från båda enhetsidentitetscertifikaten. IoT Hub kräver två tumavtryck när du registrerar en IoT Edge-enhet. Du kan bara använda ett certifikat för registrering. Om du vill använda ett enda certifikat anger du samma tumavtryck för certifikatet för både de primära och sekundära tumavtrycken när du registrerar enheten.

    Tumavtrycksvärden är 40 hextecken för SHA-1-hashar eller 64-hextecken för SHA-256-hashar. Båda tumavtrycken tillhandahålls till IoT Hub vid tidpunkten för enhetsregistreringen.

    Ett sätt att hämta tumavtrycket från ett certifikat är med följande openssl-kommando:

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

    Tumavtrycket ingår i utdata från det här kommandot. Till exempel:

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

Om du inte har certifikat tillgängliga kan du skapa democertifikat för att testa IoT Edge-enhetsfunktioner. Följ anvisningarna i den artikeln för att konfigurera skript för att skapa certifikat, skapa ett rotcertifikatutfärdarcertifikat och skapa ett IoT Edge-enhetsidentitetscertifikat. För testning kan du skapa ett enhetsidentitetscertifikat och använda samma tumavtryck för både primära och sekundära tumavtrycksvärden när du registrerar enheten i IoT Hub.

Registrera din enhet

Du kan använda Azure-portalen, Visual Studio Code eller Azure CLI för att registrera din enhet, beroende på vad du föredrar.

I din IoT-hubb i Azure-portalen skapas och hanteras IoT Edge-enheter separat från IoT-enheter som inte är edge-aktiverade.

  1. Logga in på Azure-portalen och gå till din IoT-hubb.

  2. I den vänstra rutan väljer du Enheter på menyn och väljer sedan Lägg till enhet.

  3. På sidan Skapa en enhet anger du följande information:

    • Skapa ett beskrivande enhets-ID. Anteckna det här enhets-ID:t när du använder det senare.
    • Markera kryssrutan IoT Edge-enhet .
    • Välj X.509 Självsignerad som autentiseringstyp.
    • Ange tumavtrycken för primärt och sekundärt identitetscertifikat. Tumavtrycksvärden är 40 hextecken för SHA-1-hashar eller 64-hextecken för SHA-256-hashar. Azure-portalen stöder endast hexadecimala värden. Ta bort kolumnavgränsare och blanksteg från tumavtrycksvärdena innan du anger dem i portalen. Till exempel D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12 anges som D268D9049F1A4D6AFD8477687BC633C032375112.

    Dricks

    Om du testar och vill använda ett certifikat kan du använda samma certifikat för både de primära och sekundära tumavtrycken.

  4. Välj Spara.

Nu när du har en enhet registrerad i IoT Hub hämtar du den information som du använder för att slutföra installationen och etableringen av IoT Edge-körningen.

Visa registrerade enheter och hämta etableringsinformation

Enheter som använder X.509-certifikatautentisering behöver sitt IoT-hubbnamn, sitt enhetsnamn och sina certifikatfiler för att slutföra installationen och etableringen av IoT Edge-körningen.

De gränsaktiverade enheter som ansluter till din IoT-hubb visas på sidan Enheter . Du kan filtrera listan efter IoT Edge-enheter av enhetstyp.

Installera IoT Edge

Distribuera Azure IoT Edge för Linux på Windows på målenheten.

Kommentar

Följande PowerShell-process beskriver hur du distribuerar IoT Edge för Linux i Windows till den lokala enheten. Om du vill distribuera till en fjärrmålenhet med Hjälp av PowerShell kan du använda Fjärr-PowerShell för att upprätta en anslutning till en fjärrenhet och fjärrköra dessa kommandon på den enheten.

  1. I en upphöjd PowerShell-session kör du något av följande kommandon beroende på din målenhetsarkitektur för att ladda ned IoT Edge för Linux i Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  2. Installera IoT Edge för Linux på Windows på din enhet.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    Du kan ange anpassad IoT Edge för Linux i Windows-installation och VHDX-kataloger genom att lägga till INSTALLDIR="<FULLY_QUALIFIED_PATH>" och VHDXDIR="<FULLY_QUALIFIED_PATH>" parametrar i installationskommandot. Om du till exempel vill använda mappen D:\EFLOW för installation och D:\EFLOW-VHDX för VHDX kan du använda följande PowerShell-cmdlet.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Ange körningsprincipen på målenheten till AllSigned om den inte redan är det. Se PowerShell-kraven för kommandon för att kontrollera den aktuella körningsprincipen och ange körningsprincipen till AllSigned.

  4. Skapa IoT Edge för Linux i Windows-distributionen. Distributionen skapar din virtuella Linux-dator och installerar IoT Edge-körningen åt dig.

    Deploy-Eflow
    

    Dricks

    Som standard skapar kommandot den Deploy-Eflow virtuella Linux-datorn med 1 GB RAM-minne, 1 vCPU-kärna och 16 GB diskutrymme. De resurser som din virtuella dator behöver är dock mycket beroende av de arbetsbelastningar som du distribuerar. Om den virtuella datorn inte har tillräckligt med minne för att stödja dina arbetsbelastningar startar den inte.

    Du kan anpassa den virtuella datorns tillgängliga resurser med hjälp av Deploy-Eflow kommandots valfria parametrar. Detta krävs för att distribuera EFLOW på en enhet med minimikraven för maskinvara.

    Kommandot nedan skapar till exempel en virtuell dator med en vCPU-kärna, 1 GB RAM-minne (representerat i MB) och 2 GB diskutrymme:

    Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
    

    Information om alla tillgängliga valfria parametrar finns i PowerShell-funktioner för IoT Edge för Linux i Windows.

    Varning

    Som standard har den virtuella EFLOW Linux-datorn ingen DNS-konfiguration. Distributioner med DHCP försöker hämta DNS-konfigurationen som sprids av DHCP-servern. Kontrollera DNS-konfigurationen för att säkerställa internetanslutningen. Mer information finns i AzEFLOW-DNS.

    Du kan tilldela en GPU till din distribution för att aktivera GPU-accelererade Linux-moduler. För att få åtkomst till dessa funktioner måste du installera kraven som beskrivs i GPU-acceleration för Azure IoT Edge för Linux i Windows.

    Om du vill använda en GPU-genomströmning lägger du till parametrarna gpuName, gpuPassthroughType och gpuCount i kommandot Deploy-Eflow . Information om alla tillgängliga valfria parametrar finns i PowerShell-funktioner för IoT Edge för Linux i Windows.

    Varning

    Aktivering av genomströmning av maskinvaruenheter kan öka säkerhetsriskerna. Microsoft rekommenderar en enhetsreduceringsdrivrutin från GPU:ns leverantör när det är tillämpligt. Mer information finns i Distribuera grafikenheter med diskret enhetstilldelning.

  5. Ange "Y" för att godkänna licensvillkoren.

  6. Ange "O" eller "R" för att växla Valfria diagnostikdata på eller av, beroende på vad du föredrar.

  7. När distributionen är klar rapporterar PowerShell-fönstret Distributionen lyckades.

    En lyckad distribution säger

    Efter en lyckad distribution är du redo att etablera enheten.

Etablera enheten med dess molnidentitet

Du är redo att konfigurera enheten med dess molnidentitet och autentiseringsinformation.

Om du vill etablera din enhet med X.509-certifikat behöver du ditt IoT-hubbnamn, enhets-ID och de absoluta sökvägarna till ditt identitetscertifikat och din privata nyckel på din Windows-värddator.

Ha enhetsidentitetscertifikatet och dess matchande privata nyckel redo på målenheten. Känna till den absoluta sökvägen till båda filerna.

Kör följande kommando i en upphöjd PowerShell-session på målenheten. Ersätt platshållartexten med dina egna värden.

Provision-EflowVm -provisioningType ManualX509 -iotHubHostname "HUB_HOSTNAME_HERE" -deviceId "DEVICE_ID_HERE" -identityCertPath "ABSOLUTE_PATH_TO_IDENTITY_CERT_HERE" -identityPrivKeyPath "ABSOLUTE_PATH_TO_PRIVATE_KEY_HERE"

Mer information om kommandot finns i Provision-EflowVM PowerShell-funktioner för IoT Edge för Linux i Windows.

Kontrollera att konfigurationen har slutförts

Kontrollera att IoT Edge för Linux i Windows har installerats och konfigurerats på din IoT Edge-enhet.

  1. Logga in på din IoT Edge för Linux på en virtuell Windows-dator med följande kommando i PowerShell-sessionen:

    Connect-EflowVm
    

    Kommentar

    Det enda konto som tillåts för SSH till den virtuella datorn är användaren som skapade det.

  2. När du är inloggad kan du kontrollera listan över IoT Edge-moduler som körs med hjälp av följande Linux-kommando:

    sudo iotedge list
    
  3. Om du behöver felsöka IoT Edge-tjänsten använder du följande Linux-kommandon.

    1. Hämta tjänstloggarna.

      sudo iotedge system logs
      
    2. Använd verktyget check för att verifiera enhetens konfigurations- och anslutningsstatus.

      sudo iotedge check
      

    Kommentar

    På en nyligen etablerad enhet kan du se ett fel som rör IoT Edge Hub:

    × produktionsberedskap: Edge Hubs lagringskatalog sparas i värdfilsystemet – Fel

    Det gick inte att kontrollera det aktuella tillståndet för edgeHub-containern

    Det här felet förväntas på en nyligen etablerad enhet eftersom IoT Edge Hub-modulen inte körs. Lös felet genom att ange modulerna för enheten i IoT Hub och skapa en distribution. När du skapar en distribution för enheten startas modulerna på enheten, inklusive IoT Edge Hub-modulen.

När du skapar en ny IoT Edge-enhet visas statuskoden 417 -- The device's deployment configuration is not set i Azure-portalen. Den här statusen är normal och innebär att enheten är redo att ta emot en moduldistribution.

Avinstallera IoT Edge för Linux i Windows

Om du vill ta bort Azure IoT Edge för Linux på Windows-installationen från enheten använder du följande kommandon.

  1. Öppna Inställningar i Windows
  2. Välj Lägg till eller ta bort program
  3. Välj Azure IoT Edge-app
  4. Välj Avinstallera

Nästa steg