Delen via


IoT Edge-apparaten op schaal maken en inrichten in Windows met X.509-certificaten

Van toepassing op: Ja-pictogram IoT Edge 1.1

Belangrijk

Het einde van de ondersteuningsdatum voor IoT Edge 1.1 is 13 december 2022. Raadpleeg het levenscyclusbeleid van Microsoft voor informatie over hoe dit product of deze service, technologie of API wordt ondersteund. Zie IoT Edge bijwerken voor meer informatie over het bijwerken naar de nieuwste versie van IoT Edge.

Dit artikel bevat end-to-end instructies voor het automatisch inrichten van een of meer Windows IoT Edge-apparaten met behulp van X.509-certificaten. U kunt Automatisch Azure IoT Edge-apparaten inrichten met de Azure IoT Hub Device Provisioning Service (DPS). Als u niet bekend bent met het proces van automatische inrichting, raadpleegt u het inrichtingsoverzicht voordat u doorgaat.

Notitie

Azure IoT Edge met Windows-containers wordt niet ondersteund vanaf versie 1.2 van Azure IoT Edge.

Overweeg om de nieuwe methode te gebruiken voor het uitvoeren van IoT Edge op Windows-apparaten, Azure IoT Edge voor Linux in Windows.

Als u Azure IoT Edge voor Linux in Windows wilt gebruiken, kunt u de stappen in de equivalente handleiding volgen.

De taken zijn als volgt:

  1. Certificaten en sleutels genereren.
  2. Maak een afzonderlijke inschrijving voor één apparaat of een groepsinschrijving voor een set apparaten.
  3. Installeer de IoT Edge-runtime en registreer het apparaat bij IoT Hub.

Het gebruik van X.509-certificaten als attestation-mechanisme is een uitstekende manier om productie te schalen en het inrichten van apparaten te vereenvoudigen. Normaal gesproken worden X.509-certificaten gerangschikt in een certificaatketen van vertrouwen. Vanaf een zelfondertekend of vertrouwd basiscertificaat ondertekent elk certificaat in de keten het volgende lagere certificaat. Met dit patroon maakt u een gedelegeerde vertrouwensketen van het basiscertificaat tot en met elk tussenliggend certificaat tot het uiteindelijke downstreamapparaatcertificaat dat op een apparaat is geïnstalleerd.

Vereisten

Cloudresources

Vereisten voor apparaten

Een fysiek of virtueel Windows-apparaat dat het IoT Edge-apparaat is.

Apparaat-id-certificaten genereren

Het certificaat voor apparaat-id's is een downstreamapparaatcertificaat dat via een certificaatketen van vertrouwen verbinding maakt met het bovenste X.509-certificaat (CA). Voor het certificaat voor apparaat-id's moet de algemene naam (CN) zijn ingesteld op de apparaat-id die het apparaat in uw IoT-hub moet hebben.

Apparaat-id-certificaten worden alleen gebruikt voor het inrichten van het IoT Edge-apparaat en het verifiëren van het apparaat met Azure IoT Hub. Ze ondertekenen geen certificaten, in tegenstelling tot de CA-certificaten die het IoT Edge-apparaat presenteert aan modules of downstreamapparaten voor verificatie. Zie de details van het gebruik van Azure IoT Edge-certificaten voor meer informatie.

Nadat u het certificaat voor apparaat-id's hebt gemaakt, moet u twee bestanden hebben: een .cer- of PEM-bestand dat het openbare gedeelte van het certificaat bevat en een .cer- of PEM-bestand met de persoonlijke sleutel van het certificaat. Als u van plan bent om groepsinschrijving in DPS te gebruiken, hebt u ook het openbare gedeelte van een tussenliggend of basis-CA-certificaat in dezelfde vertrouwensketen nodig.

U hebt de volgende bestanden nodig om automatische inrichting in te stellen met X.509:

  • Het certificaat van de apparaat-id en het bijbehorende persoonlijke sleutelcertificaat. Het apparaat-id-certificaat wordt geüpload naar DPS als u een afzonderlijke inschrijving maakt. De persoonlijke sleutel wordt doorgegeven aan de IoT Edge-runtime.
  • Een volledig ketencertificaat, dat ten minste de apparaat-id en de tussenliggende certificaten erin moet hebben. Het volledige ketencertificaat wordt doorgegeven aan de IoT Edge-runtime.
  • Een tussenliggend of basis-CA-certificaat uit de certificaatketen van vertrouwen. Dit certificaat wordt geüpload naar DPS als u een groepsinschrijving maakt.

Notitie

Momenteel voorkomt een beperking in libiothsm het gebruik van certificaten die op of na 1 januari 2038 verlopen.

Testcertificaten gebruiken (optioneel)

Als u geen certificeringsinstantie hebt om nieuwe identiteitscertificaten te maken en dit scenario wilt uitproberen, bevat de Git-opslagplaats van Azure IoT Edge scripts die u kunt gebruiken om testcertificaten te genereren. Deze certificaten zijn alleen ontworpen voor ontwikkelingstests en mogen niet in productie worden gebruikt.

Als u testcertificaten wilt maken, volgt u de stappen in Democertificaten maken om ioT Edge-apparaatfuncties te testen. Voltooi de twee vereiste secties om de scripts voor het genereren van certificaten in te stellen en een basis-CA-certificaat te maken. Volg vervolgens de stappen om een apparaat-id-certificaat te maken. Wanneer u klaar bent, hebt u het volgende certificaatketen en sleutelpaar nodig:

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

U hebt beide certificaten nodig op het IoT Edge-apparaat. Als u afzonderlijke inschrijving in DPS gaat gebruiken, uploadt u het .cert.pem-bestand. Als u groepsinschrijving in DPS gaat gebruiken, hebt u ook een tussenliggend of basis-CA-certificaat in dezelfde vertrouwensketen nodig om te uploaden. Als u democertificaten gebruikt, gebruikt u het <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem certificaat voor groepsinschrijving.

Een DPS-inschrijving maken

Gebruik uw gegenereerde certificaten en sleutels om een inschrijving in DPS te maken voor een of meer IoT Edge-apparaten.

Als u één IoT Edge-apparaat wilt inrichten, maakt u een afzonderlijke inschrijving. Als u meerdere apparaten wilt inrichten, volgt u de stappen voor het maken van een DPS-groepsinschrijving.

Wanneer u een inschrijving in DPS maakt, hebt u de mogelijkheid om een eerste apparaatdubbelstatus te declareren. In de apparaatdubbel kunt u tags instellen om apparaten te groeperen op basis van de metrische gegevens die u nodig hebt in uw oplossing, zoals regio, omgeving, locatie of apparaattype. Deze tags worden gebruikt om automatische implementaties te maken.

Zie Apparaatinschrijvingen beheren voor meer informatie over inschrijvingen in de device provisioning-service.

Een afzonderlijke DPS-inschrijving maken

Afzonderlijke inschrijvingen nemen het openbare gedeelte van het identiteitscertificaat van een apparaat op en komen overeen met het certificaat op het apparaat.

Tip

De stappen in dit artikel zijn bedoeld voor Azure Portal, maar u kunt ook afzonderlijke inschrijvingen maken met behulp van de Azure CLI. Zie az iot dps enrollment voor meer informatie. Als onderdeel van de CLI-opdracht gebruikt u de vlag edge om op te geven dat de inschrijving voor een IoT Edge-apparaat is.

  1. Navigeer in Azure Portal naar uw exemplaar van de IoT Hub-apparaatinrichtingsservice.

  2. Selecteer Onder Instellingen de optie Inschrijvingen beheren.

  3. Selecteer Afzonderlijke inschrijving toevoegen en voer vervolgens de volgende stappen uit om de inschrijving te configureren:

    • Mechanisme: Selecteer X.509.

    • .pem- of .cer-bestand van het primaire certificaat: upload het openbare bestand van het apparaat-id-certificaat. Als u de scripts hebt gebruikt om een testcertificaat te genereren, kiest u het volgende bestand:

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

    • IoT Hub-apparaat-id: geef desgewenst een id op voor uw apparaat. U kunt apparaat-id's gebruiken om een afzonderlijk apparaat te richten voor module-implementatie. Als u geen apparaat-id opgeeft, wordt de algemene naam (CN) in het X.509-certificaat gebruikt.

    • IoT Edge-apparaat: selecteer Waar om aan te geven dat de inschrijving voor een IoT Edge-apparaat is.

    • Selecteer de IoT-hubs waaraan dit apparaat kan worden toegewezen: Kies de gekoppelde IoT-hub waarmee u uw apparaat wilt verbinden. U kunt meerdere hubs kiezen en het apparaat wordt toegewezen aan een van deze hubs volgens het geselecteerde toewijzingsbeleid.

    • Initiële apparaatdubbelstatus: voeg desgewenst een tagwaarde toe aan de apparaatdubbel. U kunt tags gebruiken voor doelgroepen van apparaten voor automatische implementatie. Voorbeeld:

      {
          "tags": {
             "environment": "test"
          },
          "properties": {
             "desired": {}
          }
      }
      
  4. Selecteer Opslaan.

Onder Inschrijvingen beheren ziet u de registratie-id voor de inschrijving die u zojuist hebt gemaakt. Noteer het, omdat deze kan worden gebruikt wanneer u uw apparaat inricht.

Nu er een inschrijving voor dit apparaat bestaat, kan de IoT Edge-runtime het apparaat automatisch inrichten tijdens de installatie.

IoT Edge installeren

In deze sectie bereidt u uw Windows-VM of fysiek apparaat voor op IoT Edge. Vervolgens installeert u IoT Edge.

Azure IoT Edge is afhankelijk van een OCI-compatibele containerruntime. Moby, een moby-engine, is opgenomen in het installatiescript, wat betekent dat er geen extra stappen zijn om de engine te installeren.

De IoT Edge-runtime installeren:

  1. Voer PowerShell uit als beheerder.

    Gebruik een AMD64-sessie van PowerShell, niet PowerShell(x86). Als u niet zeker weet welk sessietype u gebruikt, voert u de volgende opdracht uit:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Voer de opdracht Deploy-IoTEdge uit, waarmee de volgende taken worden uitgevoerd:

    • Controleert of uw Windows-computer een ondersteunde versie heeft
    • Hiermee schakelt u de functie containers in
    • De moby-engine en de IoT Edge-runtime downloaden
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. Start uw apparaat opnieuw op als u hierom wordt gevraagd.

Wanneer u IoT Edge op een apparaat installeert, kunt u aanvullende parameters gebruiken om het proces te wijzigen, waaronder:

  • Verkeer omleiden om via een proxyserver te gaan
  • Wijs het installatieprogramma naar een lokale map voor offline-installatie

Zie PowerShell-scripts voor IoT Edge met Windows-containers voor meer informatie over deze aanvullende parameters.

Het apparaat inrichten met de cloudidentiteit

Zodra de runtime op uw apparaat is geïnstalleerd, configureert u het apparaat met de informatie die wordt gebruikt om verbinding te maken met de apparaatinrichtingsservice en IoT Hub.

Zorg ervoor dat de volgende informatie gereed is:

  • De waarde van het DPS-id-bereik. U kunt deze waarde ophalen op de overzichtspagina van uw DPS-exemplaar in Azure Portal.
  • Het certificaatketenbestand van de apparaatidentiteit op het apparaat.
  • Het apparaat-id-sleutelbestand op het apparaat.
  1. Open een PowerShell-venster in de beheerdersmodus. Zorg ervoor dat u een AMD64-sessie van PowerShell gebruikt bij het installeren van IoT Edge, niet PowerShell (x86).

  2. Met de opdracht Initialize-IoTEdge configureert u de IoT Edge-runtime op uw machine. De opdracht is standaard ingesteld op handmatig inrichten met Windows-containers, dus gebruik de -DpsX509 vlag voor het gebruik van automatische inrichting met X.509-certificaatverificatie.

    Vervang de tijdelijke aanduidingen voor scope_id, identity cert chain pathen identity key path door de juiste waarden van uw DPS-exemplaar en de bestandspaden op uw apparaat.

    Voeg de -RegistrationId paste_registration_id_here parameter toe als u de apparaat-id wilt instellen als iets anders dan de CN-naam van het identiteitscertificaat.

    . {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
    

    Tip

    In het configuratiebestand worden uw certificaat- en sleutelgegevens opgeslagen als bestands-URI's. De opdracht Initialize-IoTEdge verwerkt deze opmaakstap echter voor u, zodat u het absolute pad naar het certificaat en de sleutelbestanden op uw apparaat kunt opgeven.

Geslaagde installatie controleren

Als de runtime is gestart, kunt u naar uw IoT Hub gaan en Beginnen met het implementeren van IoT Edge-modules op uw apparaat.

U kunt controleren of de afzonderlijke inschrijving die u hebt gemaakt in de Device Provisioning Service is gebruikt. Navigeer naar uw exemplaar van de device provisioning service in Azure Portal. Open de inschrijvingsgegevens voor de afzonderlijke inschrijving die u hebt gemaakt. U ziet dat de status van de inschrijving is toegewezen en dat de apparaat-id wordt vermeld.

Gebruik de volgende opdrachten op uw apparaat om te controleren of ioT Edge is geïnstalleerd en gestart.

Controleer de status van de IoT Edge-service.

Get-Service iotedge

Bekijk servicelogboeken.

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

Lijst met actieve modules.

iotedge list

Volgende stappen

Met het registratieproces van de device provisioning service kunt u de apparaat-id en apparaatdubbeltags instellen op hetzelfde moment als u het nieuwe apparaat inricht. U kunt deze waarden gebruiken om afzonderlijke apparaten of groepen apparaten te richten met behulp van automatisch apparaatbeheer. Leer hoe u IoT Edge-modules op schaal implementeert en bewaakt met behulp van Azure Portal of met behulp van Azure CLI.