Konfigurowanie urządzenia usługi IoT Edge, aby działało jako przezroczysta bramaConfigure an IoT Edge device to act as a transparent gateway

Dotyczy:  ikona tak IoT Edge 1,1 innych wersji: IoT Edge 1,2Applies to: yes icon IoT Edge 1.1 Other versions: IoT Edge 1.2

Dotyczy:  ikona tak IoT Edge 1,2 innych wersji: IoT Edge 1,1Applies to: yes icon IoT Edge 1.2 Other versions: IoT Edge 1.1

Ten artykuł zawiera szczegółowe instrukcje dotyczące konfigurowania urządzenia IoT Edge jako przezroczystej bramy dla innych urządzeń w celu komunikowania się z IoT Hub.This article provides detailed instructions for configuring an IoT Edge device to function as a transparent gateway for other devices to communicate with IoT Hub. W tym artykule jest wykorzystywana IoT Edge Brama do odwoływania się do urządzenia IoT Edge skonfigurowanego jako nieprzezroczysta brama.This article uses the term IoT Edge gateway to refer to an IoT Edge device configured as a transparent gateway. Aby uzyskać więcej informacji, zobacz jak urządzenie IoT Edge może być używane jako brama.For more information, see How an IoT Edge device can be used as a gateway.

Uwaga

W IoT Edge w wersji 1,1 i starszej urządzenie IoT Edge nie może być niższe niż IoT Edge Gateway.In IoT Edge versions 1.1 and older, an IoT Edge device cannot be downstream of an IoT Edge gateway.

Urządzenia podrzędne nie mogą używać przekazywania plików.Downstream devices can't use file upload.

Uwaga

Urządzenia podrzędne nie mogą używać przekazywania plików.Downstream devices can't use file upload.

Należy wykonać trzy ogólne kroki, aby skonfigurować pomyślne, przezroczyste połączenie bramy.There are three general steps to set up a successful transparent gateway connection. W tym artykule omówiono pierwszy krok:This article covers the first step:

  1. Skonfiguruj urządzenie bramy jako serwer, aby urządzenia podrzędne mogły bezpiecznie się z nim połączyć. Skonfiguruj bramę do odbierania komunikatów z urządzeń podrzędnych i Roześlij je do odpowiednich miejsc docelowych.Configure the gateway device as a server so that downstream devices can connect to it securely. Set up the gateway to receive messages from downstream devices and route them to the proper destination.
  2. Utwórz tożsamość urządzenia dla urządzenia podrzędnego, aby można było uwierzytelnić się za pomocą IoT Hub.Create a device identity for the downstream device so that it can authenticate with IoT Hub. Skonfiguruj urządzenie podrzędne do wysyłania komunikatów za pomocą urządzenia bramy.Configure the downstream device to send messages through the gateway device. Aby zapoznać się z tymi krokami, zobacz temat uwierzytelnianie urządzenia podrzędnego w usłudze Azure IoT Hub.For those steps, see Authenticate a downstream device to Azure IoT Hub.
  3. Podłącz urządzenie podrzędne do urządzenia bramy i Rozpocznij wysyłanie komunikatów.Connect the downstream device to the gateway device and start sending messages. Aby zapoznać się z tymi krokami, zobacz łączenie urządzenia podrzędnego z bramą Azure IoT Edge.For those steps, see Connect a downstream device to an Azure IoT Edge gateway.

Aby urządzenie działało jako brama, musi bezpiecznie połączyć się z jego urządzeniami podrzędnymi.For a device to act as a gateway, it needs to securely connect to its downstream devices. Azure IoT Edge umożliwia konfigurowanie bezpiecznych połączeń między urządzeniami przy użyciu infrastruktury kluczy publicznych (PKI).Azure IoT Edge allows you to use a public key infrastructure (PKI) to set up secure connections between devices. W takim przypadku zezwalamy urządzeniu podrzędnemu na łączenie się z urządzeniem IoT Edge działającym jako niejawna brama.In this case, we're allowing a downstream device to connect to an IoT Edge device acting as a transparent gateway. Aby zachować uzasadnione zabezpieczenia, urządzenie podrzędne powinno potwierdzić tożsamość urządzenia bramy.To maintain reasonable security, the downstream device should confirm the identity of the gateway device. To sprawdzenie tożsamości uniemożliwia urządzeniom łączenie się z potencjalnie złośliwymi bramami.This identity check prevents your devices from connecting to potentially malicious gateways.

Urządzenie podrzędne może być dowolną aplikacją lub platformą, która ma tożsamość utworzoną za pomocą usługi Azure IoT Hub w chmurze.A downstream device can be any application or platform that has an identity created with the Azure IoT Hub cloud service. Te aplikacje często używają zestawu SDK urządzeń Azure IoT.These applications often use the Azure IoT device SDK. Urządzenie podrzędne może nawet być aplikacją działającą na samym urządzeniu bramy IoT Edge.A downstream device could even be an application running on the IoT Edge gateway device itself. Jednak urządzenie IoT Edge nie może być niższe niż Brama IoT Edge.However, an IoT Edge device cannot be downstream of an IoT Edge gateway.

Urządzenie podrzędne może być dowolną aplikacją lub platformą, która ma tożsamość utworzoną za pomocą usługi Azure IoT Hub w chmurze.A downstream device can be any application or platform that has an identity created with the Azure IoT Hub cloud service. Te aplikacje często używają zestawu SDK urządzeń Azure IoT.These applications often use the Azure IoT device SDK. Urządzenie podrzędne może nawet być aplikacją działającą na samym urządzeniu bramy IoT Edge.A downstream device could even be an application running on the IoT Edge gateway device itself.

Można utworzyć dowolną infrastrukturę certyfikatów, która umożliwia zaufanie wymagane dla topologii bramy urządzeń.You can create any certificate infrastructure that enables the trust required for your device-gateway topology. W tym artykule przyjęto założenie, że ta sama konfiguracja certyfikatu zostanie użyta do włączenia zabezpieczeń urzędu certyfikacji x. 509 w IoT Hub, co obejmuje certyfikat certyfikatu x. 509 skojarzony z określonym Centrum IoT Hub (główny urząd certyfikacji usługi IoT Hub), szereg certyfikatów podpisanych za pomocą tego urzędu certyfikacji oraz Urząd certyfikacji dla IoT Edge urządzenia.In this article, we assume the same certificate setup that you would use to enable X.509 CA security in IoT Hub, which involves an X.509 CA certificate associated to a specific IoT hub (the IoT hub root CA), a series of certificates signed with this CA, and a CA for the IoT Edge device.

Uwaga

Certyfikat głównego urzędu certyfikacji używany w tych artykułach odnosi się do urzędu certyfikacji znajdującego się najwyżej w łańcuchu certyfikatów PKI, a nie musi być certyfikatem głównym urzędu certyfikacji.The term root CA certificate used throughout these articles refers to the topmost authority public certificate of the PKI certificate chain, and not necessarily the certificate root of a syndicated certificate authority. W wielu przypadkach jest to pośredni certyfikat publiczny urzędu certyfikacji.In many cases, it is actually an intermediate CA public certificate.

Poniższe kroki przeprowadzą Cię przez proces tworzenia certyfikatów i instalowania ich w odpowiednich miejscach na bramie.The following steps walk you through the process of creating the certificates and installing them in the right places on the gateway. Możesz użyć dowolnej maszyny do wygenerowania certyfikatów, a następnie skopiować je na urządzenie IoT Edge.You can use any machine to generate the certificates, and then copy them over to your IoT Edge device.

Wymagania wstępnePrerequisites

Urządzenie z systemem Linux lub Windows z zainstalowanym IoT Edge.A Linux or Windows device with IoT Edge installed.

Jeśli urządzenie nie jest gotowe, możesz je utworzyć na maszynie wirtualnej platformy Azure.If you do not have a device ready, you can create one in an Azure virtual machine. Wykonaj kroki opisane w sekcji Wdróż pierwszy moduł IoT Edge na wirtualnym urządzeniu z systemem Linux , aby utworzyć IoT Hub, utworzyć maszynę wirtualną i skonfigurować środowisko uruchomieniowe IoT Edge.Follow the steps in Deploy your first IoT Edge module to a virtual Linux device to create an IoT Hub, create a virtual machine, and configure the IoT Edge runtime.

Konfigurowanie certyfikatu urzędu certyfikacji urządzeniaSet up the device CA certificate

Wszystkie bramy IoT Edge muszą mieć zainstalowany certyfikat urzędu certyfikacji urządzenia.All IoT Edge gateways need a device CA certificate installed on them. Demon Security IoT Edge używa certyfikatu urzędu certyfikacji IoT Edge do podpisywania certyfikatu urzędu certyfikacji obciążenia, co z kolei podpisuje certyfikat serwera dla Centrum IoT Edge.The IoT Edge security daemon uses the IoT Edge device CA certificate to sign a workload CA certificate, which in turn signs a server certificate for IoT Edge hub. Podczas inicjowania połączenia Brama przedstawia swój certyfikat serwera do urządzenia podrzędnego.The gateway presents its server certificate to the downstream device during the initiation of the connection. Urządzenie podrzędne sprawdza, czy certyfikat serwera jest częścią łańcucha certyfikatów, który jest rzutowany do certyfikatu głównego urzędu certyfikacji.The downstream device checks to make sure that the server certificate is part of a certificate chain that rolls up to the root CA certificate. Ten proces umożliwia urządzeniu podrzędnemu potwierdzenie, że brama pochodzi z zaufanego źródła.This process allows the downstream device to confirm that the gateway comes from a trusted source. Aby uzyskać więcej informacji, zobacz Opis sposobu używania certyfikatów przez Azure IoT Edge.For more information, see Understand how Azure IoT Edge uses certificates.

Konfiguracja certyfikatu bramy

Certyfikat głównego urzędu certyfikacji i certyfikat urzędu certyfikacji urządzenia (z kluczem prywatnym) muszą być obecne na urządzeniu bramy IoT Edge i skonfigurowane w pliku konfiguracji IoT Edge.The root CA certificate and the device CA certificate (with its private key) need to be present on the IoT Edge gateway device and configured in the IoT Edge config file. Należy pamiętać, że w tym przypadku certyfikat głównego urzędu certyfikacji oznacza urząd certyfikatu znajdujący się najwyżej w tym scenariuszu IoT Edge.Remember that in this case root CA certificate means the topmost certificate authority for this IoT Edge scenario. Certyfikat urzędu certyfikacji urządzenia bramy i certyfikaty urządzeń podrzędnych muszą być rzutowane do tego samego certyfikatu głównego urzędu certyfikacji.The gateway device CA certificate and the downstream device certificates need to roll up to the same root CA certificate.

Porada

Proces instalowania certyfikatu głównego urzędu certyfikacji i certyfikatu urzędu certyfikacji na urządzeniu IoT Edge jest również bardziej szczegółowy w temacie Zarządzanie certyfikatami na urządzeniu IoT Edge.The process of installing the root CA certificate and device CA certificate on an IoT Edge device is also explained in more detail in Manage certificates on an IoT Edge device.

Przygotuj następujące pliki:Have the following files ready:

  • Certyfikat głównego urzędu certyfikacjiRoot CA certificate
  • Certyfikat urzędu certyfikacji urządzeniaDevice CA certificate
  • Klucz prywatny urzędu certyfikacji urządzeniaDevice CA private key

W przypadku scenariuszy produkcyjnych należy generować te pliki przy użyciu własnego urzędu certyfikacji.For production scenarios, you should generate these files with your own certificate authority. W przypadku scenariuszy deweloperskich i testowych można użyć certyfikatów demonstracyjnych.For development and test scenarios, you can use demo certificates.

Jeśli nie masz własnego urzędu certyfikacji i chcesz korzystać z certyfikatów demonstracyjnych, postępuj zgodnie z instrukcjami w temacie Tworzenie certyfikatów demonstracyjnych, aby testować IoT Edge funkcje urządzenia , aby utworzyć pliki.If you don't have your own certificate authority and want to use demo certificates, follow the instructions in Create demo certificates to test IoT Edge device features to create your files. Na tej stronie należy wykonać następujące czynności:On that page, you need to take the following steps:

  1. Aby rozpocząć, skonfiguruj skrypty do generowania certyfikatów na urządzeniu.To start, set up the scripts for generating certificates on your device.
  2. Utwórz certyfikat głównego urzędu certyfikacji.Create a root CA certificate. Na końcu tych instrukcji będziesz mieć plik certyfikatu głównego urzędu certyfikacji:At the end of those instructions, you'll have a root CA certificate file:
    • <path>/certs/azure-iot-test-only.root.ca.cert.pem.<path>/certs/azure-iot-test-only.root.ca.cert.pem.
  3. Utwórz IoT Edge certyfikaty urzędu certyfikacji.Create IoT Edge device CA certificates. Na końcu tych instrukcji będziesz mieć certyfikat urzędu certyfikacji urządzenia i jego klucz prywatny:At the end of those instructions, you'll have a device CA certificate and its private key:
    • <path>/certs/iot-edge-device-<cert name>-full-chain.cert.pem lub<path>/certs/iot-edge-device-<cert name>-full-chain.cert.pem and
    • <path>/private/iot-edge-device-<cert name>.key.pem

Jeśli certyfikaty zostały utworzone na innym komputerze, skopiuj je na urządzenie IoT Edge i przejdź do kolejnego kroku.If you created the certificates on a different machine, copy them over to your IoT Edge device then proceed with the next steps.

  1. Na urządzeniu IoT Edge Otwórz plik konfiguracji demona zabezpieczeń.On your IoT Edge device, open the security daemon config file.

    • Windows: C:\ProgramData\iotedge\config.yamlWindows: C:\ProgramData\iotedge\config.yaml
    • Linux: /etc/iotedge/config.yamlLinux: /etc/iotedge/config.yaml
  2. Znajdź sekcję Ustawienia certyfikatu w pliku.Find the Certificate settings section of the file. Usuń znaczniki komentarza z czterech wierszy zaczynających się od certyfikatów: i podaj identyfikatory URI plików dla trzech plików jako wartości dla następujących właściwości:Uncomment the four lines starting with certificates: and provide the file URIs to your three files as values for the following properties:

    • device_ca_cert: certyfikat urzędu certyfikacji urządzeniadevice_ca_cert: device CA certificate
    • device_ca_pk: klucz prywatny urzędu certyfikacji urządzeniadevice_ca_pk: device CA private key
    • trusted_ca_certs: certyfikat głównego urzędu certyfikacjitrusted_ca_certs: root CA certificate

    Upewnij się, że nie ma żadnych spacji poprzedzających w wierszu Certificates (certyfikaty ) i że pozostałe wiersze są wcięte o dwie spacje.Make sure there is no preceding whitespace on the certificates: line, and that the other lines are indented by two spaces.

  3. Zapisz i zamknij plik.Save and close the file.

  4. Uruchom ponownie IoT Edge.Restart IoT Edge.

    • Windows: Restart-Service iotedgeWindows: Restart-Service iotedge
    • Linux: sudo systemctl restart iotedgeLinux: sudo systemctl restart iotedge
  1. Na urządzeniu IoT Edge Otwórz plik konfiguracji: /etc/aziot/config.tomlOn your IoT Edge device, open the config file: /etc/aziot/config.toml

    Porada

    Jeśli plik konfiguracji nie istnieje jeszcze na urządzeniu, użyj /etc/aziot/config.toml.edge.template jako szablonu, aby go utworzyć.If the config file doesn't exist on your device yet, then use /etc/aziot/config.toml.edge.template as a template to create one.

  2. Znajdź trust_bundle_cert parametr.Find the trust_bundle_cert parameter. Usuń komentarz z tego wiersza i podaj identyfikator URI pliku w pliku certyfikatu głównego urzędu certyfikacji na urządzeniu.Uncomment this line and provide the file URI to the root CA certificate file on your device.

  3. Znajdź [edge_ca] sekcję pliku.Find the [edge_ca] section of the file. Usuń znaczniki komentarza z trzech wierszy w tej sekcji i podaj identyfikatory URI plików dla certyfikatu i plików kluczy jako wartości dla następujących właściwości:Uncomment the three lines in this section and provide the file URIs to your certificate and key files as values for the following properties:

    • CERT: certyfikat urzędu certyfikacji urządzeniacert: device CA certificate
    • PK: klucz prywatny urzędu certyfikacji urządzeniapk: device CA private key
  4. Zapisz i zamknij plik.Save and close the file.

  5. Zastosuj zmiany.Apply your changes.

    sudo iotedge config apply
    

Wdrażanie edgeHub i komunikatów routinguDeploy edgeHub and route messages

Urządzenia podrzędne wysyłają dane telemetryczne i komunikaty do urządzenia bramy, gdzie moduł IoT Edge Hub jest odpowiedzialny za kierowanie informacji do innych modułów lub IoT Hub.Downstream devices send telemetry and messages to the gateway device, where the IoT Edge hub module is responsible for routing the information to other modules or to IoT Hub. Aby przygotować urządzenie bramy do tej funkcji, upewnij się, że:To prepare your gateway device for this function, make sure that:

  • Moduł IoT Edge Hub został wdrożony na urządzeniu.The IoT Edge hub module is deployed to the device.

    Podczas pierwszej instalacji IoT Edge na urządzeniu zostanie automatycznie uruchomiony tylko jeden moduł systemowy: Agent IoT Edge.When you first install IoT Edge on a device, only one system module starts automatically: the IoT Edge agent. Po utworzeniu pierwszego wdrożenia dla urządzenia jest również uruchamiany drugi moduł systemowy IoT Edge centrum.Once you create the first deployment for a device, the second system module, the IoT Edge hub, starts as well. Jeśli moduł edgeHub nie jest uruchomiony na urządzeniu, Utwórz wdrożenie dla tego urządzenia.If the edgeHub module isn't running on your device, create a deployment for your device.

  • Moduł IoT Edge Hub ma skonfigurowane trasy do obsługi komunikatów przychodzących z urządzeń podrzędnych.The IoT Edge hub module has routes set up to handle incoming messages from downstream devices.

    Urządzenie bramy musi mieć trasę w miejscu do obsługi komunikatów z urządzeń podrzędnych lub komunikaty te nie zostaną przetworzone.The gateway device must have a route in place to handle messages from downstream devices or else those messages will not be processed. Komunikaty można wysyłać do modułów na urządzeniu bramy lub bezpośrednio do IoT Hub.You can send the messages to modules on the gateway device or directly to IoT Hub.

Aby wdrożyć moduł IoT Edge Hub i skonfigurować go przy użyciu tras do obsługi komunikatów przychodzących z urządzeń podrzędnych, wykonaj następujące kroki:To deploy the IoT Edge hub module and configure it with routes to handle incoming messages from downstream devices, follow these steps:

  1. W witrynie Azure Portal przejdź do centrum IoT Hub.In the Azure portal, navigate to your IoT hub.

  2. Przejdź do IoT Edge i wybierz urządzenie IoT Edge, które ma być używane jako brama.Go to IoT Edge and select your IoT Edge device that you want to use as a gateway.

  3. Wybierz pozycję Ustaw moduły.Select Set Modules.

  4. Na stronie moduły można dodać wszystkie moduły, które mają zostać wdrożone na urządzeniu bramy.On the Modules page, you can add any modules you want to deploy to the gateway device. Na potrzeby tego artykułu firma Microsoft koncentruje się na konfigurowaniu i wdrażaniu modułu edgeHub, który nie musi być jawnie ustawiony na tej stronie.For the purposes of this article we're focused on configuring and deploying the edgeHub module, which doesn't need to be explicitly set on this page.

  5. Wybierz pozycję Dalej: trasy.Select Next: Routes.

  6. Na stronie trasy upewnij się, że istnieje trasa do obsługi komunikatów pochodzących z urządzeń podrzędnych.On the Routes page, make sure that there is a route to handle messages coming from downstream devices. Na przykład:For example:

    • Trasa, która wysyła wszystkie wiadomości, niezależnie od modułu lub z urządzenia podrzędnego, do IoT Hub:A route that sends all messages, whether from a module or from a downstream device, to IoT Hub:

      • Nazwa: allMessagesToHubName: allMessagesToHub
      • Wartość: FROM /messages/* INTO $upstreamValue: FROM /messages/* INTO $upstream
    • Trasa, która wysyła wszystkie komunikaty ze wszystkich urządzeń podrzędnych do IoT Hub:A route that sends all messages from all downstream devices to IoT Hub:

      • Nazwa: allDownstreamToHubName: allDownstreamToHub
      • Wartość: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstreamValue: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream

      Ta trasa działa, ponieważ, w przeciwieństwie do komunikatów z modułów IoT Edge, komunikaty z urządzeń podrzędnych nie mają skojarzonego z nimi identyfikatora modułu.This route works because, unlike messages from IoT Edge modules, messages from downstream devices don't have a module ID associated with them. Użycie klauzuli WHERE trasy pozwala nam odfiltrować wszystkie komunikaty z tą właściwością systemu.Using the WHERE clause of the route allows us to filter out any messages with that system property.

      Aby uzyskać więcej informacji na temat routingu wiadomości, zobacz wdrażanie modułów i ustanawianie tras.For more information about message routing, see Deploy modules and establish routes.

  7. Po utworzeniu trasy lub tras wybierz pozycję Przegląd + Utwórz.Once your route or routes are created, select Review + create.

  8. Na stronie Recenzja i tworzenie wybierz pozycję Utwórz.On the Review + create page, select Create.

Otwórz porty na urządzeniu bramyOpen ports on gateway device

Standardowe urządzenia IoT Edge nie potrzebują żadnej łączności przychodzącej z funkcją, ponieważ cała komunikacja z IoT Hub odbywa się za pośrednictwem połączeń wychodzących.Standard IoT Edge devices don't need any inbound connectivity to function, because all communication with IoT Hub is done through outbound connections. Urządzenia bramy różnią się, ponieważ muszą odbierać komunikaty z urządzeń podrzędnych.Gateway devices are different because they need to receive messages from their downstream devices. Jeśli Zapora jest między urządzeniami podrzędnymi a urządzeniem bramy, komunikacja musi być również możliwa za pomocą zapory.If a firewall is between the downstream devices and the gateway device, then communication needs to be possible through the firewall as well.

Aby scenariusz bramy działał prawidłowo, należy otworzyć co najmniej jeden z obsługiwanych protokołów IoT Edge Hub dla ruchu przychodzącego z urządzeń podrzędnych.For a gateway scenario to work, at least one of the IoT Edge hub's supported protocols must be open for inbound traffic from downstream devices. Obsługiwane protokoły to MQTT, AMQP, HTTPS, MQTT za pośrednictwem obiektów WebSockets oraz AMQP za pośrednictwem obiektów WebSockets.The supported protocols are MQTT, AMQP, HTTPS, MQTT over WebSockets, and AMQP over WebSockets.

PortPort ProtokółProtocol
88838883 MQTTMQTT
56715671 AMQPAMQP
443443 HTTPSHTTPS
MQTT + WSMQTT+WS
AMQP + WSAMQP+WS

Następne krokiNext steps

Teraz, gdy masz już skonfigurowane urządzenie IoT Edge jako niejawną bramę, musisz skonfigurować urządzenia podrzędne, aby ufać bramie i wysyłać do niej komunikaty.Now that you have an IoT Edge device set up as a transparent gateway, you need to configure your downstream devices to trust the gateway and send messages to it. Kontynuuj, aby uwierzytelnić urządzenie podrzędne w usłudze Azure IoT Hub w celu wykonania następnych kroków w celu skonfigurowania niejawnego scenariusza bramy.Continue on to Authenticate a downstream device to Azure IoT Hub for the next steps in setting up your transparent gateway scenario.