Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för: IoT Edge 1.5
 IoT Edge 1.5
Viktigt!
IoT Edge 1.5 LTS är den version som stöds. IoT Edge 1.4 LTS upphör från och med den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.
Den här artikeln innehåller detaljerade instruktioner för att konfigurera en IoT Edge-enhet som en transparent gateway så att andra enheter kan ansluta till IoT Hub. I den här artikeln innebär IoT Edge-gateway en IoT Edge-enhet som konfigurerats som en transparent gateway. Mer information finns i Hur en IoT Edge-enhet kan användas som en gateway.
Kommentar
Underordnade enheter kan inte använda filuppladdning.
Det finns tre huvudsakliga steg för att konfigurera en transparent gatewayanslutning. Den här artikeln beskriver det första steget:
- Konfigurera gatewayenheten som en server så att underordnade enheter kan ansluta på ett säkert sätt. Konfigurera gatewayen för att ta emot meddelanden från underordnade enheter och dirigera dem till rätt mål.
- Skapa en enhetsidentitet för den underordnade enheten så att den kan autentisera med IoT Hub. Konfigurera den underordnade enheten så att den skickar meddelanden via gatewayenheten. De här stegen finns i Autentisera en underordnad enhet till Azure IoT Hub.
- Anslut den underordnade enheten till gatewayenheten och börja skicka meddelanden. De här stegen finns i Ansluta en nedströmsenhet till en Azure IoT Edge-gateway.
För att fungera som en gateway måste en enhet ansluta säkert till sina underordnade enheter. Med Azure IoT Edge kan du använda PKI (Public Key Infrastructure) för att konfigurera säkra anslutningar mellan enheter. I det här fallet ansluter en nedströmsenhet till en IoT Edge-enhet som fungerar som en transparent gateway. För att skydda saker och ting kontrollerar den underordnade enheten gatewayenhetens identitet. Den här kontrollen förhindrar att enheter ansluter till skadliga gatewayer.
En nedströmsenhet kan vara valfritt program eller plattform med en identitet som skapats i Azure IoT Hub. Dessa program använder ofta Azure IoT-enhetens SDK. En nedströmsenhet kan till och med vara ett program som körs på själva IoT Edge-gatewayenheten.
Du kan skapa valfri certifikatinfrastruktur som möjliggör det förtroende som krävs för din enhetsgatewaytopologi. I den här artikeln använder vi samma certifikatkonfiguration som X.509 CA-säkerhet i IoT Hub. Den här konfigurationen använder ett X.509 CA-certifikat som är kopplat till en specifik IoT-hubb (rotcertifikatutfärdare för IoT Hub), en serie certifikat som har signerats med den här certifikatutfärdare och en CA för IoT Edge-enheten.
Kommentar
Termen rotcertifikatutfärdarcertifikat som används i dessa artiklar refererar till det översta offentliga certifikatet för PKI-certifikatkedjan och inte nödvändigtvis certifikatroten för en syndikerad certifikatutfärdare. I många fall är det faktiskt ett mellanliggande CA-certifikat.
Följ de här stegen för att skapa certifikaten och installera dem på rätt platser på gatewayen. Använd valfri dator för att generera certifikaten och kopiera dem sedan till din IoT Edge-enhet.
Förutsättningar
Du behöver en Linux- eller Windows-enhet med IoT Edge installerat.
Om du inte har en enhet redo skapar du en på en virtuell Azure-dator. Följ stegen i Distribuera din första IoT Edge-modul till en virtuell Linux-enhet för att skapa en IoT Hub, skapa en virtuell dator och konfigurera IoT Edge-körningen.
Konfigurera Edge CA-certifikatet
Alla IoT Edge-gatewayer behöver ett Edge CA-certifikat installerat på dem. IoT Edge-säkerhetsdaemonen använder Edge CA-certifikatet för att signera ett ca-certifikat för arbetsbelastning som i sin tur signerar ett servercertifikat för IoT Edge-hubben. Gatewayen visar sitt servercertifikat till den underordnade enheten under initieringen av anslutningen. Den underordnade enheten kontrollerar att servercertifikatet ingår i en certifikatkedja som samlas in till rotcertifikatutfärdarcertifikatet. Med den här processen kan den underordnade enheten bekräfta att gatewayen kommer från en betrodd källa. Mer information finns i Förstå hur Azure IoT Edge använder certifikat.
Rot-CA-certifikatet och Edge-CA-certifikatet (med dess privata nyckel) måste finnas på IoT Edge-gateway-enheten och ange dem i IoT Edge-konfigurationsfilen. I det här fallet innebär root CA-certifikatet den högsta certifikatutfärdaren för det här IoT Edge-scenariot. Gateway Edge CA-certifikat och de underordnade enhetscertifikaten måste härstamma från samma rot-CA-certifikat.
Dricks
Processen för att installera rotcertifikatutfärdarcertifikatet och Edge CA-certifikatet på en IoT Edge-enhet beskrivs också mer detaljerat i Hantera certifikat på en IoT Edge-enhet.
Ha följande filer klara:
- Rotcertifikatutfärdarcertifikat
- Edge CA-certifikat
- Privat nyckel för enhets-CA
För produktionsscenarier genererar du dessa filer med din egen certifikatmyndighet. För utvecklings- och testscenarier kan du använda democertifikat.
Skapa democertifikat
Om du inte har en egen certifikatutfärdare och vill använda democertifikat följer du anvisningarna i Skapa democertifikat för att testa IoT Edge-enhetsfunktioner för att skapa dina filer. Följ dessa steg på den sidan:
- Konfigurera skripten för att generera certifikat på enheten.
- Skapa ett rotcertifikatutfärdarcertifikat. I slutet har du en rotcertifikatfil <path>/certs/azure-iot-test-only.root.ca.cert.pem.
- Skapa Edge CA-certifikat. I slutet har du ett Edge CA-certifikat <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pemoch dess privata nyckel<path>/private/iot-edge-device-ca-<cert name>.key.pem.
Kopiera certifikat till enheten
- Kontrollera att certifikatet uppfyller formatkraven. 
- Om du har skapat certifikaten på en annan dator kopierar du dem till din IoT Edge-enhet. Använd en USB-enhet, en tjänst som Azure Key Vault eller ett kommando som Säker filkopia. 
- Flytta filerna till önskad katalog för certifikat och nycklar: - /var/aziot/certsför certifikat och- /var/aziot/secretsför nycklar.
- Skapa certifikat och nycklar kataloger och ange behörigheter. Lagra dina certifikat och nycklar i önskad - /var/aziotkatalog:- /var/aziot/certsför certifikat och- /var/aziot/secretsför nycklar.- # 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
- Ändra ägarskap och behörigheter för certifikaten och nycklarna. - # 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 {} \;
Konfigurera certifikat på enheten
- Öppna konfigurationsfilen på din IoT Edge-enhet: - /etc/aziot/config.toml. Om du använder IoT Edge för Linux i Windows ansluter du till den virtuella EFLOW-datorn med hjälp av PowerShell-cmdleten- Connect-EflowVm.- Dricks - Om konfigurationsfilen inte finns på enheten ännu använder - /etc/aziot/config.toml.edge.templatedu den som mall för att skapa en.
- Leta upp parametern - trust_bundle_cert. Ta bort kommentaren till den här raden och ange fil-URI:n till rotcertifikatutfärdarcertifikatfilen på enheten.
- Leta reda på - [edge_ca]avsnittet i filen. Ta bort kommentaren till de tre raderna i det här avsnittet och ange fil-URI:er till certifikatet och nyckelfilerna som värden för följande egenskaper:- cert: Edge CA-certifikat
- pk: privat nyckel för enhets-CA
 
- Spara och stäng filen. 
- Tillämpa ändringarna. - sudo iotedge config apply
Distribuera edgeHub och dirigera meddelanden
Underordnade enheter skickar telemetri och meddelanden till gatewayenheten, där IoT Edge-hubbmodulen dirigerar informationen till andra moduler eller till IoT Hub. Om du vill förbereda din gatewayenhet för den här funktionen kontrollerar du att:
- IoT Edge-hubbmodulen distribueras till enheten. - När du installerar IoT Edge på en enhet startar bara en systemmodul automatiskt: IoT Edge-agenten. När du skapar den första distributionen för en enhet startar även den andra systemmodulen och IoT Edge-hubben. Om edgeHub-modulen inte körs på enheten skapar du en distribution för enheten. 
- IoT Edge-hubbmodulen har vägar konfigurerade för att hantera inkommande meddelanden från underordnade enheter. - Gatewayenheten behöver en väg för att hantera meddelanden från underordnade enheter, eller så bearbetas inte dessa meddelanden. Du kan skicka meddelandena till moduler på gatewayenheten eller direkt till IoT Hub. 
Följ dessa steg för att distribuera IoT Edge-hubbmodulen och konfigurera vägar för att hantera inkommande meddelanden från underordnade enheter:
- Gå till din IoT-hubb i Azure-portalen. 
- Gå till Enheter under menyn Enhetshantering och välj den IoT Edge-enhet som ska användas som gateway. 
- Välj Ange moduler. 
- På sidan Moduler lägger du till alla moduler som du vill distribuera till gatewayenheten. I den här artikeln fokuserar du på att konfigurera och distribuera edgeHub-modulen, som inte behöver anges uttryckligen på den här sidan. 
- Välj Nästa: Vägar. 
- På sidan Vägar kontrollerar du att det finns en väg för att hantera meddelanden från underordnade enheter. Till exempel: - En väg som skickar alla meddelanden, oavsett om det är från en modul eller från en nedströmsenhet, till IoT Hub: - 
              Namn: allMessagesToHub
- 
              Värde: FROM /messages/* INTO $upstream
 
- 
              Namn: 
- En väg som skickar alla meddelanden från alla underordnade enheter till IoT Hub: - 
              Namn: allDownstreamToHub
- 
              Värde: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream
 - Den här vägen fungerar eftersom meddelanden från underordnade enheter, till skillnad från meddelanden från IoT Edge-moduler, inte har något modul-ID associerat med dem. Med where-satsen för vägen kan du filtrera bort alla meddelanden med den systemegenskapen. - Mer information om meddelanderoutning finns i Distribuera moduler och upprätta vägar. 
- 
              Namn: 
 
- När du har skapat din rutt eller dina rutter väljer du Granska + skapa. 
- På sidan Granska + skapa väljer du Skapa. 
Öppna portar på gatewayenheten
Standard-IoT Edge-enheter behöver ingen inkommande anslutning för att fungera, eftersom all kommunikation med IoT Hub sker via utgående anslutningar. Gateway-enheter skiljer sig eftersom de behöver ta emot meddelanden från sina underordnade enheter. Om en brandvägg finns mellan nedströmsenheterna och gatewayenheten måste kommunikationen också vara möjlig via brandväggen.
För att ett gatewayscenario ska fungera måste minst ett av IoT Edge Hubs protokoll som stöds vara öppet för inkommande trafik från underordnade enheter. Protokoll som stöds är MQTT, AMQP, HTTPS, MQTT över WebSockets och AMQP över WebSockets.
| Hamn | Protokoll | 
|---|---|
| 8883 | MQTT | 
| 5671 | AMQP (Advanced Message Queuing Protocol) | 
| 443 | HTTPS MQTT+WS AMQP+WS | 
Nästa steg
Nu när du har konfigurerat en IoT Edge-enhet som en transparent gateway konfigurerar du dina underordnade enheter för att lita på gatewayen och skicka meddelanden till den. Fortsätt att autentisera en nedströmsenhet till Azure IoT Hub för nästa steg i ditt transparenta gatewayscenario.
