Delen via


Een IoT Edge-apparaat configureren zodat deze werkt als een transparante gateway

Van toepassing op:IoT Edge 1.5-vinkje IoT Edge 1.5

Belangrijk

IoT Edge 1.5 LTS is de ondersteunde release. IoT Edge 1.4 LTS is het einde van de levensduur vanaf 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

In dit artikel vindt u gedetailleerde instructies voor het configureren van een IoT Edge-apparaat als een transparante gateway, zodat andere apparaten verbinding kunnen maken met IoT Hub. In dit artikel betekent IoT Edge-gateway een IoT Edge-apparaat dat is geconfigureerd als een transparante gateway. Zie Hoe een IoT Edge-apparaat kan worden gebruikt als gateway voor meer informatie.

Notitie

Downstreamapparaten kunnen het uploaden van bestanden niet gebruiken.

Er zijn drie belangrijke stappen voor het instellen van een transparante gatewayverbinding. In dit artikel wordt de eerste stap behandeld:

  1. Configureer het gatewayapparaat als een server, zodat downstreamapparaten veilig verbinding kunnen maken. Stel de gateway in om berichten van downstreamapparaten te ontvangen en door te sturen naar de juiste bestemming.
  2. Maak een apparaat-id voor het downstreamapparaat, zodat het kan worden geverifieerd met IoT Hub. Configureer het downstreamapparaat om berichten via het gatewayapparaat te verzenden. Zie Een downstreamapparaat verifiëren bij Azure IoT Hub voor deze stappen.
  3. Verbind het downstreamapparaat met het gatewayapparaat en begin berichten te verzenden. Zie Een downstreamapparaat verbinden met een Azure IoT Edge-gateway voor deze stappen.

Als u als gateway wilt fungeren, moet een apparaat veilig verbinding maken met de downstreamapparaten. Met Azure IoT Edge kunt u PKI (Public Key Infrastructure) gebruiken om beveiligde verbindingen tussen apparaten in te stellen. In dit geval maakt een downstreamapparaat verbinding met een IoT Edge-apparaat dat fungeert als een transparante gateway. Om de zaken veilig te houden, controleert het downstreamapparaat de identiteit van het gatewayapparaat. Met deze controle voorkomt u dat apparaten verbinding maken met schadelijke gateways.

Een downstreamapparaat kan elke toepassing of elk platform zijn met een identiteit die is gemaakt in Azure IoT Hub. Deze toepassingen maken vaak gebruik van de Azure IoT-apparaat-SDK. Een downstreamapparaat kan zelfs een toepassing zijn die wordt uitgevoerd op het IoT Edge-gatewayapparaat zelf.

U kunt een certificaatinfrastructuur maken die de vertrouwensrelatie mogelijk maakt die vereist is voor de topologie van uw apparaatgateway. In dit artikel gebruiken we dezelfde certificaatinstallatie als X.509 CA-beveiliging in IoT Hub. Deze installatie maakt gebruik van een X.509-CA-certificaat dat is gekoppeld aan een specifieke IoT-hub (de basis-CA van de IoT-hub), een reeks certificaten die zijn ondertekend met deze CA en een CA voor het IoT Edge-apparaat.

Notitie

Het term basis-CA-certificaat dat in deze artikelen wordt gebruikt, verwijst naar het hoogste openbare certificeringsinstantiecertificaat van de PKI-certificaatketen en niet noodzakelijkerwijs de certificaathoofdmap van een gesyndiceerde certificeringsinstantie. In veel gevallen is het eigenlijk een publiek CA-tussencertificaat.

Volg deze stappen om de certificaten te maken en deze op de juiste plaatsen op de gateway te installeren. Gebruik elke computer om de certificaten te genereren en kopieer deze vervolgens naar uw IoT Edge-apparaat.

Vereisten

U hebt een Linux- of Windows-apparaat nodig waarop IoT Edge is geïnstalleerd.

Als u nog geen apparaat hebt, maakt u er een in een virtuele Azure-machine. Volg de stappen in Uw eerste IoT Edge-module implementeren op een virtueel Linux-apparaat om een IoT Hub te maken, een virtuele machine te maken en de IoT Edge-runtime te configureren.

Het Edge CA-certificaat instellen

Alle IoT Edge-gateways hebben een Edge CA-certificaat nodig dat erop is geïnstalleerd. De IoT Edge-beveiligingsdaemon maakt gebruik van het Edge-CA-certificaat om een ca-certificaat voor werkbelasting te ondertekenen, dat op zijn beurt een servercertificaat ondertekent voor ioT Edge-hub. De gateway presenteert het servercertificaat aan het downstreamapparaat tijdens het starten van de verbinding. Het downstreamapparaat controleert of het servercertificaat deel uitmaakt van een certificaatketen die wordt samengevouwen tot het basis-CA-certificaat. Met dit proces kan het downstreamapparaat bevestigen dat de gateway afkomstig is van een vertrouwde bron. Zie Begrijpen hoe Azure IoT Edge certificaten gebruikt voor meer informatie.

Schermopname van de installatie van het gatewaycertificaat.

Het basis-CA-certificaat en het Edge-CA-certificaat (met de bijbehorende persoonlijke sleutel) moeten zich op het IoT Edge-gatewayapparaat en in het IoT Edge-configuratiebestand instellen. In dit geval betekent basis-CA-certificaat de belangrijkste certificeringsinstantie voor dit IoT Edge-scenario. Het Edge-CA-certificaat van de gateway en de certificaten van het downstreamapparaat moeten worden samengevouwen tot hetzelfde basis-CA-certificaat.

Aanbeveling

Het proces voor het installeren van het basis-CA-certificaat en edge-CA-certificaat op een IoT Edge-apparaat wordt ook uitgebreid beschreven in Certificaten beheren op een IoT Edge-apparaat.

Zorg ervoor dat de volgende bestanden gereed zijn:

  • Basis-CA-certificaat
  • Edge CA-certificaat
  • Persoonlijke sleutel van apparaat-CA

Voor productiescenario's genereert u deze bestanden met uw eigen certificeringsinstantie. Voor ontwikkelings- en testscenario's kunt u democertificaten gebruiken.

Democertificaten maken

Als u geen eigen certificeringsinstantie hebt en democertificaten wilt gebruiken, volgt u de instructies in Democertificaten maken om ioT Edge-apparaatfuncties te testen om uw bestanden te maken. Voer op die pagina de volgende stappen uit:

  1. Stel de scripts in voor het genereren van certificaten op uw apparaat.
  2. Maak een basis-CA-certificaat. Aan het einde hebt u een basis-CA-certificaatbestand <path>/certs/azure-iot-test-only.root.ca.cert.pem.
  3. Edge CA-certificaten maken. Aan het einde hebt u een Edge CA-certificaat <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem en de bijbehorende persoonlijke sleutel <path>/private/iot-edge-device-ca-<cert name>.key.pem.

Certificaten naar apparaat kopiëren

  1. Controleer of het certificaat voldoet aan de indelingsvereisten.

  2. Als u de certificaten op een andere computer hebt gemaakt, kopieert u deze naar uw IoT Edge-apparaat. Gebruik een USB-station, een service zoals Azure Key Vault of een opdracht als Beveiligd bestand kopiëren.

  3. Verplaats de bestanden naar de voorkeursmap voor certificaten en sleutels: /var/aziot/certs voor certificaten en /var/aziot/secrets voor sleutels.

  4. Maak de certificaten en sleutels en stel machtigingen in. Sla uw certificaten en sleutels op in de voorkeursmap /var/aziot : /var/aziot/certs voor certificaten en /var/aziot/secrets voor sleutels.

    # If the certificate and keys directories don't exist, create, set ownership, and set permissions
    sudo mkdir -p /var/aziot/certs
    sudo chown aziotcs:aziotcs /var/aziot/certs
    sudo chmod 755 /var/aziot/certs
    
    sudo mkdir -p /var/aziot/secrets
    sudo chown aziotks:aziotks /var/aziot/secrets
    sudo chmod 700 /var/aziot/secrets
    
  5. Wijzig het eigendom en de machtigingen voor de certificaten en sleutels.

    # Give aziotcs ownership to certificates
    # Read and write for aziotcs, read-only for others
    sudo chown -R aziotcs:aziotcs /var/aziot/certs
    sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \;
    
    # Give aziotks ownership to private keys
    # Read and write for aziotks, no permission for others
    sudo chown -R aziotks:aziotks /var/aziot/secrets
     sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
    

Certificaten op apparaat configureren

  1. Open het configuratiebestand op uw IoT Edge-apparaat: /etc/aziot/config.toml. Als u IoT Edge voor Linux in Windows gebruikt, maakt u verbinding met de virtuele EFLOW-machine met behulp van de Connect-EflowVm PowerShell-cmdlet.

    Aanbeveling

    Als het configuratiebestand nog niet op uw apparaat bestaat, gebruikt /etc/aziot/config.toml.edge.template u dit als sjabloon om er een te maken.

  2. Zoek de trust_bundle_cert parameter. Verwijder opmerkingen bij deze regel en geef de bestands-URI op voor het basis-CA-certificaatbestand op uw apparaat.

  3. Zoek de [edge_ca] sectie van het bestand. Verwijder opmerkingen bij de drie regels in deze sectie en geef de bestands-URI's op voor uw certificaat- en sleutelbestanden als waarden voor de volgende eigenschappen:

    • certificaat: Edge CA-certificaat
    • pk: persoonlijke sleutel van apparaat-CA
  4. Sla het bestand op en sluit het bestand.

  5. Pas uw wijzigingen toe.

    sudo iotedge config apply
    

EdgeHub implementeren en berichten routeren

Downstreamapparaten verzenden telemetrie en berichten naar het gatewayapparaat, waarbij de IoT Edge-hubmodule de informatie naar andere modules of naar IoT Hub stuurt. Als u uw gatewayapparaat voor deze functie wilt voorbereiden, moet u ervoor zorgen dat:

  • De IoT Edge-hubmodule wordt geïmplementeerd op het apparaat.

    Wanneer u IoT Edge op een apparaat installeert, wordt slechts één systeemmodule automatisch gestart: de IoT Edge-agent. Wanneer u de eerste implementatie voor een apparaat maakt, worden ook de tweede systeemmodule en de IoT Edge-hub gestart. Als de EdgeHub-module niet op uw apparaat wordt uitgevoerd, maakt u een implementatie voor uw apparaat.

  • De IoT Edge-hubmodule bevat routes die zijn ingesteld om binnenkomende berichten van downstreamapparaten te verwerken.

    Het gatewayapparaat heeft een route nodig om berichten van downstreamapparaten te verwerken, of deze berichten worden niet verwerkt. U kunt de berichten verzenden naar modules op het gatewayapparaat of rechtstreeks naar IoT Hub.

Als u de IoT Edge-hubmodule wilt implementeren en routes wilt configureren om binnenkomende berichten van downstreamapparaten te verwerken, voert u de volgende stappen uit:

  1. Ga in Azure Portal naar uw IoT-hub.

  2. Ga naar Apparaten in het menu Apparaatbeheer en selecteer uw IoT Edge-apparaat dat u als gateway wilt gebruiken.

  3. Selecteer Modules instellen.

  4. Voeg op de pagina Modules alle modules toe die u wilt implementeren op het gatewayapparaat. In dit artikel bent u gericht op het configureren en implementeren van de EdgeHub-module, die niet expliciet op deze pagina hoeft te worden ingesteld.

  5. Selecteer Volgende: Routes.

  6. Controleer op de pagina Routes of er een route is om berichten van downstreamapparaten te verwerken. Voorbeeld:

    • Een route waarmee alle berichten, hetzij vanuit een module of vanaf een downstreamapparaat, naar IoT Hub worden verzonden:

      • Naam: allMessagesToHub
      • Waarde: FROM /messages/* INTO $upstream
    • Een route waarmee alle berichten van alle downstreamapparaten worden verzonden naar IoT Hub:

      • Naam: allDownstreamToHub
      • Waarde: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream

      Deze route werkt omdat, in tegenstelling tot berichten van IoT Edge-modules, berichten van downstreamapparaten geen module-id hebben. Met behulp van de WHERE-component van de route kunt u alle berichten met die systeemeigenschap filteren.

      Zie Modules implementeren en routes instellen voor meer informatie over berichtroutering.

  7. Nadat u uw route of routes hebt aangemaakt, selecteert u Beoordelen en maken.

  8. Selecteer Maken op de pagina Beoordelen en maken.

Poorten openen op gatewayapparaat

Standaard IoT Edge-apparaten hebben geen binnenkomende connectiviteit met functie nodig, omdat alle communicatie met IoT Hub wordt uitgevoerd via uitgaande verbindingen. Gatewayapparaten verschillen omdat ze berichten van hun downstreamapparaten moeten ontvangen. Als een firewall zich tussen de downstreamapparaten en het gatewayapparaat bevindt, moet de communicatie ook mogelijk zijn via de firewall.

Een gatewayscenario werkt alleen als ten minste één van de ondersteunde protocollen van de IoT Edge Hub is geopend voor binnenkomend verkeer van downstreamapparaten. De ondersteunde protocollen zijn MQTT, AMQP, HTTPS, MQTT via WebSockets en AMQP via WebSockets.

Poort protocol
8883 MQTT
5671 AMQP (Advanced Message Queuing Protocol)
443 HTTPS
MQTT+WS
AMQP+WS

Volgende stappen

Nu u een IoT Edge-apparaat instelt als een transparante gateway, stelt u uw downstreamapparaten in om de gateway te vertrouwen en er berichten naar te verzenden. Ga door met het verifiëren van een downstreamapparaat bij Azure IoT Hub voor de volgende stappen in uw transparante gatewayscenario.