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

Van toepassing op:IoT Edge 1.5-vinkje IoT Edge 1.5 Vinkje voor IoT Edge 1.4 IoT Edge 1.4

Belangrijk

IoT Edge 1.5 LTS en IoT Edge 1.4 LTS worden ondersteund releases. IoT Edge 1.4 LTS eindigt op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

Dit artikel bevat gedetailleerde instructies voor het configureren van een IoT Edge-apparaat om te functioneren als een transparante gateway voor andere apparaten om te communiceren met IoT Hub. In dit artikel wordt de term IoT Edge-gateway gebruikt om te verwijzen naar 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 algemene stappen voor het instellen van een geslaagde transparante gatewayverbinding. In dit artikel wordt de eerste stap behandeld:

  1. Configureer het gatewayapparaat als een server, zodat downstreamapparaten er veilig verbinding mee 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. Verbinding maken het downstreamapparaat naar het gatewayapparaat en begin berichten te verzenden. Zie Verbinding maken een downstreamapparaat naar een Azure IoT Edge-gateway voor deze stappen.

Als een apparaat als gateway moet fungeren, moet het veilig verbinding maken met de downstreamapparaten. Met Azure IoT Edge kunt u een PKI (Public Key Infrastructure) gebruiken om beveiligde verbindingen tussen apparaten in te stellen. In dit geval staat u een downstreamapparaat toe om verbinding te maken met een IoT Edge-apparaat dat fungeert als een transparante gateway. Om een redelijke beveiliging te behouden, moet het downstreamapparaat de identiteit van het gatewayapparaat bevestigen. Met deze identiteitscontrole voorkomt u dat uw apparaten verbinding maken met mogelijk schadelijke gateways.

Een downstreamapparaat kan elke toepassing of elk platform zijn met een identiteit die is gemaakt met de Azure IoT Hub-cloudservice . 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 wordt ervan uitgegaan dat u dezelfde certificaatconfiguratie gebruikt om X.509 CA-beveiliging in te schakelen in IoT Hub, waarbij een X.509-CA-certificaat 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 openbaar ca-tussencertificaat.

Met de volgende stappen doorloopt u het proces voor het maken van de certificaten en het installeren ervan op de juiste plaatsen op de gateway. U kunt elke computer gebruiken om de certificaten te genereren en deze vervolgens naar uw IoT Edge-apparaat te kopiëren.

Vereisten

Een Linux- of Windows-apparaat waarop IoT Edge is geïnstalleerd.

Als u nog geen apparaat hebt, kunt u er een maken 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 CA-certificaat voor het apparaat instellen

Alle IoT Edge-gateways hebben een CA-apparaatcertificaat nodig dat erop is geïnstalleerd. De IoT Edge-beveiligingsdaemon maakt gebruik van het CA-certificaat van het IoT Edge-apparaat om een CA-certificaat voor werkbelasting te ondertekenen, dat op zijn beurt een servercertificaat voor IoT Edge-hub ondertekent. 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 ca-certificaat van het apparaat (met de persoonlijke sleutel) moeten aanwezig zijn op het IoT Edge-gatewayapparaat en zijn geconfigureerd in het IoT Edge-configuratiebestand. Houd er rekening mee dat in dit geval een basis-CA-certificaat de hoogste certificeringsinstantie voor dit IoT Edge-scenario betekent. Het CA-certificaat van het gatewayapparaat en de downstreamapparaatcertificaten moeten worden samengevouwen tot hetzelfde basis-CA-certificaat.

Tip

Het proces voor het installeren van het basis-CA-certificaat en het CA-certificaat voor apparaten 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
  • CA-certificaat voor apparaat
  • Persoonlijke sleutel van apparaat-CA

Voor productiescenario's moet u deze bestanden genereren 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. Op die pagina moet u de volgende stappen uitvoeren:

  1. Als u wilt beginnen, stelt u de scripts in voor het genereren van certificaten op uw apparaat.
  2. Maak een basis-CA-certificaat. Aan het einde van deze instructies hebt u een basis-CA-certificaatbestand <path>/certs/azure-iot-test-only.root.ca.cert.pem.
  3. Ca-certificaten voor IoT Edge-apparaten maken. Aan het einde van deze instructies hebt u een ca-certificaat <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem voor het apparaat met de 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. U kunt een USB-station, een service zoals Azure Key Vault of met een functie zoals beveiligd bestand kopiëren gebruiken.

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

  4. Maak de certificaten en sleutels en stel machtigingen in. U moet uw certificaten en sleutels opslaan in de voorkeursmap /var/aziot . Gebruiken /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 van 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, moet u verbinding maken met de virtuele EFLOW-machine met behulp van de Connect-EflowVm PowerShell-cmdlet.

    Tip

    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: CA-certificaat voor apparaat
    • 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 verantwoordelijk is voor het routeren van de informatie naar andere modules of naar IoT Hub. 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 voor het eerst op een apparaat installeert, wordt slechts één systeemmodule automatisch gestart: de IoT Edge-agent. Zodra u de eerste implementatie voor een apparaat hebt gemaakt, 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 moet een route hebben om berichten van downstreamapparaten te verwerken, anders worden deze berichten niet verwerkt. U kunt de berichten verzenden naar modules op het gatewayapparaat of rechtstreeks naar IoT Hub.

Voer de volgende stappen uit om de IoT Edge-hubmodule te implementeren en te configureren met routes voor het afhandelen van binnenkomende berichten van downstreamapparaten:

  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. Op de pagina Modules kunt u alle modules toevoegen die u wilt implementeren op het gatewayapparaat. Voor het doel van dit artikel richten we ons 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 te verwerken die afkomstig zijn van downstreamapparaten. 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 kunnen we alle berichten met die systeemeigenschap uitfilteren.

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

  7. Zodra uw route of routes zijn gemaakt, 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
443 HTTPS
MQTT+WS
AMQP+WS

Volgende stappen

Nu u een IoT Edge-apparaat hebt ingesteld als een transparante gateway, moet u uw downstreamapparaten configureren 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 bij het instellen van uw transparante gatewayscenario.