Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к:
IoT Edge 1.6
Внимание
IoT Edge 1.6 LTS — поддерживаемый релиз. Поддержка IoT Edge 1.5 LTS заканчивается 10 ноября 2026 года; IoT Edge 1.4 LTS завершил срок службы 12 ноября 2024 года. Если вы используете более ранний выпуск, ознакомьтесь с Update IoT Edge.
В этой статье приведены подробные инструкции по настройке устройства IoT Edge в качестве прозрачного шлюза, чтобы другие устройства могли подключаться к Центр Интернета вещей. В этой статье шлюз IoT Edge означает устройство IoT Edge, настроенное в качестве прозрачного шлюза. Дополнительные сведения см. в статье Как можно использовать устройство IoT Edge в качестве шлюза.
Примечание.
подчиненные устройства не поддерживают отправку файлов.
Существует три основных шага для настройки подключения шлюза в режиме прозрачности. В этой статье рассматривается первый шаг.
- Настройте устройство шлюза в качестве сервера, чтобы подчиненные устройства могли безопасно подключаться. Настройте шлюз для получения сообщений от подчиненных устройств и перенаправьте их в нужное место назначения.
- Создайте удостоверение устройства для нижестоящего устройства, чтобы он смог пройти проверку подлинности с помощью Центр Интернета вещей. Настройте подчиненное устройство для отправки сообщений через устройство шлюза. Подробнее см. в разделе Аутентификация подключенного устройства для Центр Интернета вещей Azure.
- Подключите подчиненное устройство к устройству шлюза и начните отправку сообщений. Инструкции см. в разделе Connect a downstream device to an Azure IoT Edge gateway.
Чтобы работать в качестве шлюза, устройство должно безопасно подключаться к его подчиненным устройствам. Azure IoT Edge позволяет использовать инфраструктуру открытых ключей (PKI) для настройки безопасных подключений между устройствами. В этом случае подчиненное устройство подключается к устройству IoT Edge, выступающему в качестве прозрачного шлюза. Для обеспечения безопасности приемное устройство проверяет идентичность устройства шлюза. Эта проверка помогает предотвратить подключение устройств к вредоносным шлюзам.
Последующее устройство может быть любым приложением или платформой с идентификатором, созданным в Центр Интернета вещей Azure. Эти приложения часто используют пакет SDK для устройств Azure IoT. Нижестоящее устройство может даже быть приложением, работающим на самом устройстве шлюза IoT Edge.
Вы можете создать любую инфраструктуру сертификата, обеспечивающую доверие, необходимое для топологии "устройство — шлюз". В этой статье мы используем ту же настройку сертификата, что и X.509 CA security в Центр Интернета вещей. В этой настройке используется сертификат ЦС X.509, связанный с определенным центром Интернета вещей (корневой ЦС Центра Интернета вещей), ряд сертификатов, подписанных этим ЦС, и ЦС для устройства IoT Edge.
Примечание.
Под термином сертификат корневого ЦС, используемым в этих статьях, понимается главный общедоступный сертификат в цепочке PKI, который не обязательно является корневым сертификатом для синдицированного удостоверяющего центра. Во многих случаях это на самом деле промежуточный публичный сертификат удостоверяющего центра.
Выполните следующие действия, чтобы создать сертификаты и установить их в нужных местах на шлюзе. Используйте любой компьютер для создания сертификатов, а затем скопируйте их на устройство IoT Edge.
Предварительные требования
Требуется устройство Linux или Windows с установленным IoT Edge.
Если у вас нет устройства, создайте его в Azure виртуальной машине. Выполните действия, описанные в разделе Развертывание вашего первого модуля IoT Edge на виртуальном устройстве Linux, чтобы создать Центр Интернета вещей, создать виртуальную машину и настроить среду выполнения IoT Edge.
Настройте сертификат Удостоверяющего Центра Edge
Для всех IoT Edge шлюзов требуется сертификат ЦС Edge, установленный на них. Демон безопасности IoT Edge использует сертификат CA Edge для подписи сертификата рабочей нагрузки CA, который, в свою очередь, подписывает серверный сертификат для хаба IoT Edge. Шлюз предоставляет сертификат своего сервера подчиненному устройству при инициировании подключения. Ниже стоящее устройство проверяет, является ли сертификат сервера частью цепочки сертификатов, которая восходит к сертификату корневого удостоверяющего центра. В результате этого процесса подчиненное устройство получает подтверждение того, что шлюз предоставлен надежным источником. Дополнительные сведения см. в статье Understand, как Azure IoT Edge использует сертификаты.
Корневой сертификат ЦС и сертификат ЦС Edge (с закрытым ключом) должны находиться на устройстве шлюза IoT Edge и быть настроены в файле конфигурации IoT Edge. В этом случае корневой сертификат ЦС означает главный центр сертификации для этого сценария IoT Edge. Сертификат УЦ шлюза Edge и подчиненные сертификаты устройств должны сходиться к тому же самому корневому сертификату УЦ.
Совет
Процесс установки корневого сертификата УЦ и сертификата периферийного УЦ на устройстве IoT Edge также подробно описан в разделе Управление сертификатами на устройстве IoT Edge.
Подготовьте следующие файлы:
- Корневой сертификат ЦС
- Сертификат ЦС для периферийной сети
- Закрытый ключ ЦС устройства
В рабочих сценариях создайте эти файлы с помощью собственного центра сертификации. Для сценариев разработки и тестирования можно использовать демонстрационные сертификаты.
Создание демонстрационных сертификатов
Если у вас нет собственного центра сертификации и вы хотите использовать демонстрационные сертификаты, следуйте инструкциям в Создание демонстрационных сертификатов для тестирования функций устройства IoT Edge, чтобы создать ваши файлы. На этой странице выполните следующие действия.
- Настройте скрипты для создания сертификатов на устройстве.
- Создайте сертификат корневого центра сертификации (ЦС). В конце концов, у вас есть файл сертификата корневого центра сертификации (ЦС)
<path>/certs/azure-iot-test-only.root.ca.cert.pem. - Создайте сертификаты УЦ Edge. В итоге у вас есть сертификат
<path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pemЦС Edge и его закрытый ключ<path>/private/iot-edge-device-ca-<cert name>.key.pem.
Копирование сертификатов на устройство
Проверьте, соответствует ли сертификат требованиям к формату.
Если вы создали сертификаты на другом компьютере, скопируйте их на устройство IoT Edge. Используйте USB-диск, службу, например Azure Key Vault или команду, например Secure file copy.
Создайте сертификаты и каталоги ключей и задайте разрешения. Сохраните сертификаты и ключи в предпочтительном
/var/aziotкаталоге:/var/aziot/certsдля сертификатов и/var/aziot/secretsключей.# 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Переместите файлы в предпочтительный каталог для сертификатов и ключей:
/var/aziot/certsдля сертификатов и/var/aziot/secretsключей.Измените владение и разрешения для сертификатов и ключей.
# 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 {} \;
Настройка сертификатов на устройстве
На устройстве IoT Edge откройте файл конфигурации:
/etc/aziot/config.toml. Если вы используете IoT Edge для Linux в Windows, подключитесь к виртуальной машине EFLOW с помощью командлетаConnect-EflowVmPowerShell.Совет
Если файл конфигурации еще не существует на вашем устройстве, используйте файл
/etc/aziot/config.toml.edge.templateв качестве шаблона для его создания.Найдите параметр
trust_bundle_cert. Раскомментируйте эту строку и укажите URI файла сертификата корневого ЦС на устройстве.[edge_ca]Найдите раздел файла. Раскомментируйте три строки в этом разделе и укажите URI файлов для сертификата и файлов ключей в качестве значений для следующих свойств:- сертификат: Сертификат Edge CA
- pk: закрытый ключ Центра сертификации устройства
Сохранить и закрыть файл.
Примените изменения.
sudo iotedge config apply
Развертывание edgeHub и маршрутизация сообщений
Подчиненные устройства отправляют данные телеметрии и сообщения на устройство шлюза, где модуль концентратора IoT Edge направляет сведения в другие модули или Центр Интернета вещей. Чтобы подготовить устройство шлюза для этой функции, проверьте выполнение следующих условий.
Модуль хаба IoT Edge развертывается на устройстве.
При установке IoT Edge на устройстве запускается только один системный модуль: агент IoT Edge. При создании первого развертывания для устройства второй системный модуль и хаб IoT Edge запускаются. Если модуль edgeHub не запущен на вашем устройстве, создайте развертывание для своего устройства.
Модуль центра IoT Edge имеет маршруты, настроенные для обработки входящих сообщений с подчиненных устройств.
Устройству шлюза необходимо иметь маршрут для обработки сообщений от подключенных устройств, иначе эти сообщения не будут обработаны. Сообщения можно отправлять в модули на устройстве шлюза или напрямую в Центр Интернета вещей.
Чтобы развернуть модуль концентратора IoT Edge и настроить маршруты для обработки входящих сообщений с подчиненных устройств, выполните следующие действия.
На портале Azure перейдите в центр Интернета вещей.
Перейдите в меню Devices в меню управления Device и выберите устройство IoT Edge для использования в качестве шлюза.
Щелкните Set Modules (Настроить модули).
На странице "Модули" добавьте все модули, которые требуется развернуть на устройстве шлюза. В этой статье вы сосредоточены на настройке и развертывании модуля edgeHub, который не требуется явно задать на этой странице.
Нажмите Далее: маршруты.
На странице "Маршруты" убедитесь, что существует маршрут для обработки сообщений с подчиненных устройств. Например:
Маршрут, который отправляет все сообщения из модуля или из нижнего устройства в Центр Интернета вещей:
-
Имя:
allMessagesToHub -
Значение:
FROM /messages/* INTO $upstream
-
Имя:
Маршрут, который отправляет все сообщения со всех подчиненных устройств в Центр Интернета вещей:
-
Имя:
allDownstreamToHub -
Значение:
FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream
Этот маршрут работает, потому что, в отличие от сообщений из модулей IoT Edge, сообщения из подчиненных устройств не имеют идентификатора модуля, связанного с ними. С помощью предложения WHERE маршрута можно отфильтровать все сообщения с помощью этого системного свойства.
Дополнительные сведения о маршрутизации сообщений см. в разделе Развертывание модулей и установление маршрутов.
-
Имя:
После создания маршрута или маршрутов нажмите кнопку "Проверить и создать".
На странице Отзыв и создание выберите Создать.
Открытие портов на устройстве шлюза
Стандартные устройства IoT Edge не нуждаются во входном подключении для функционирования, так как вся связь с Центр Интернета вещей осуществляется через исходящие подключения. Устройства шлюзов отличаются тем, что они должны принимать сообщения от подключённых к ним устройств. Если между подчиненными устройствами и устройством шлюза находится брандмауэр, то брандмауэр должен разрешать связь между этими устройствами.
Чтобы сценарий шлюза работал, хотя бы один из поддерживаемых протоколов IoT Edge хаба должен быть открыт для входящего трафика от нижестоящих устройств. Поддерживаемые протоколы: MQTT, AMQP, HTTPS, MQTT через WebSockets и AMQP через WebSockets.
| Порт | Протокол |
|---|---|
| 8883 | Протокол передачи телеметрических сообщений MQTT |
| 5671 | AMQP |
| 443 | HTTPS MQTT+WS AMQP+WS |
Следующие шаги
Теперь, когда вы настроили устройство IoT Edge в качестве прозрачного шлюза, настройте подчиненные устройства для доверия шлюзу и отправки сообщений в него. Продолжайте удостоверять нижнее устройство в Центр Интернета вещей Azure до следующих шагов в сценарии прозрачного шлюза.