Поделиться через


Создание и подготовка устройств IoT Edge в большом масштабе в Windows с помощью сертификатов X.509

Область применения: Значок IoT Edge 1.1

Внимание

Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г. Чтобы получить сведения о поддержке определенного продукта, службы, технологии или API, перейдите на страницу Политика жизненного цикла поддержки Майкрософт. Дополнительные сведения об обновлении до последней версии IoT Edge см. в разделе "Обновление IoT Edge".

В этой статье приведены комплексные инструкции по автоматической подготовке одного или нескольких устройств Windows IoT Edge с помощью сертификатов X.509. Вы можете автоматически подготовить устройства Azure IoT Edge с помощью службы подготовки устройств Центр Интернета вещей Azure (DPS). Если вы не знакомы с процессом автоматической подготовки, ознакомьтесь с обзором подготовки, прежде чем продолжить.

Примечание.

Поддержка Azure IoT Edge с контейнерами Windows будет прекращена начиная с Azure IoT Edge версии 1.2.

Рекомендуется использовать новый метод для запуска IoT Edge на устройствах Windows, Azure IoT Edge для Linux в Windows.

Если вы хотите использовать Azure IoT Edge для Linux в Windows, выполните действия, описанные в аналогичном руководстве.

Для этого необходимо выполнить следующие задачи:

  1. Создание сертификатов и ключей.
  2. Создайте отдельную регистрацию для одного устройства или группы для набора устройств.
  3. Установка среды выполнения IoT Edge и регистрация устройства в Центре Интернета вещей.

Применение сертификатов X.509 в качестве механизма аттестации позволяет легко масштабировать производство и упростить подготовку устройств к работе. Сертификаты X.509 обычно организованы в цепочки доверия. Начиная с самозаверяющего или доверенного корневого сертификата каждый сертификат в цепочке подписывает следующий сертификат, который находится на более низком уровне. Этот шаблон создает делегированную цепочку доверия из корневого сертификата вниз по каждому промежуточному сертификату до окончательного нижнего сертификата устройства, установленного на устройстве.

Необходимые компоненты

Облачные ресурсы

  • Активный Центр Интернета вещей
  • Экземпляр службы подготовки устройств Центр Интернета вещей в Azure, связанный с центром Интернета вещей

Требования к устройствам

Физическое или виртуальное устройство Windows, которое должно быть устройством IoT Edge.

Создание сертификатов удостоверений устройств

Сертификат удостоверения устройства — это подчиненный сертификат устройства, который подключается через цепочку сертификатов доверия к верхнему сертификату центра сертификации X.509 (ЦС). Сертификат удостоверения устройства должен иметь общее имя (CN) для идентификатора устройства, который должен иметь устройство в Центре Интернета вещей.

Сертификаты удостоверений устройств используются только для подготовки устройства IoT Edge и проверки подлинности устройства в Центре Интернета вещей Azure. Они не подписывают сертификаты, в отличие от сертификатов ЦС, которые устройство IoT Edge предоставляет модулям или подчиненным устройствам для проверки. Дополнительные сведения см. в разделе об использовании сертификатов Azure IoT Edge.

После создания сертификата удостоверения устройства необходимо два файла: CER или PEM, который содержит открытую часть сертификата, и CER или PEM с закрытым ключом сертификата. Если вы планируете использовать групповую регистрацию в DPS, вам также потребуется открытая часть промежуточного или корневого сертификата ЦС в той же цепочке сертификатов доверия.

Чтобы настроить автоматическую подготовку с помощью X.509, вам потребуются следующие файлы:

  • Сертификат удостоверения устройства и сертификат его закрытого ключа. Сертификат удостоверения устройства отправляется в DPS при создании отдельной регистрации. Закрытый ключ передается в среду выполнения IoT Edge.
  • Полный сертификат цепочки, который должен содержать, по крайней мере, удостоверение устройства и промежуточные сертификаты. Полный сертификат цепочки передается в среду выполнения IoT Edge.
  • Промежуточный или корневой сертификат ЦС из цепочки доверия сертификатов. Этот сертификат отправляется в службу DPS, если вы создаете групповую регистрацию.

Примечание.

В настоящее время ограничение в libiothsm запрещает использование сертификатов, срок действия которых истекает с 1 января 2038 г.

Использование тестовых сертификатов (необязательно)

Если у вас нет доступного центра сертификации для создания новых сертификатов удостоверений и вы хотите испытать этот сценарий, репозиторий Azure IoT Edge в Git содержит сценарии, которые можно использовать для создания тестовых сертификатов. Эти сертификаты предназначены только для тестирования разработки и не должны использоваться в рабочей среде.

Чтобы создать тестовые сертификаты, выполните действия, описанные в статье Создание демонстрационных сертификатов для тестирования функций устройств IoT Edge. Заполните два необходимых раздела, чтобы настроить скрипты создания сертификатов и создать корневой сертификат ЦС. Затем выполните действия по созданию сертификата удостоверения устройства. По завершении у вас должны быть следующие цепочки сертификатов и пары ключей:

  • <WRKDIR>\certs\iot-edge-device-identity-<name>-full-chain.cert.pem
  • <WRKDIR>\private\iot-edge-device-identity-<name>.key.pem

Оба сертификата необходимы на устройстве IoT Edge. Если вы собираетесь использовать отдельную регистрацию в DPS, отправьте файл .cert.pem. Если вы планируете использовать групповую регистрацию в DPS, вам также потребуется отправить промежуточный или корневой сертификат ЦС в той же цепочке доверия сертификатов. Если вы используете демонстрационные сертификаты, используйте сертификат <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem для групповой регистрации.

Создание регистрации в Службе подготовки устройств к добавлению в Центр Интернета вещей

Используйте созданные сертификаты и ключи для создания регистрации в DPS для одного или нескольких устройств IoT Edge.

Если вы хотите подготовить одно устройство IoT Edge, создайте отдельную регистрацию. Если требуется подготовка нескольких устройств, выполните действия по созданию регистрации группы DPS.

При регистрации в Службе подготовки устройств к добавлению в Центр Интернета вещей есть возможность объявить Первоначальное состояние двойника устройства. В двойнике устройства можно задать теги для группировки устройств по любой требуемой для решения метрике, например по региону, среде, расположению или типу устройства. Эти теги используются для создания автоматических развертываний.

Дополнительные сведения о регистрации в службе подготовки устройств см. в статье "Управление регистрацией устройств".

Создание индивидуальной регистрации DPS

Отдельные регистрации принимают открытую часть сертификата удостоверения устройства и сопоставляют ее с сертификатом на устройстве.

Совет

Действия, описанные в этой статье, предназначены для портал Azure, но вы также можете создать отдельные регистрации с помощью Azure CLI. Дополнительные сведения см. в разделе az iot dps enrollment. В команде интерфейса командной строки с помощью флага edge-enabled укажите, что регистрация предназначена для устройства IoT Edge.

  1. В портал Azure перейдите к экземпляру службы подготовки устройств Центр Интернета вещей.

  2. В разделе Параметрывыберите Управление регистрациями.

  3. Выберите Добавить отдельную регистрацию и выполните следующие действия для настройки регистрации.

    • Механизм: выберите X.509.

    • Файл первичного сертификата PEM или CER: отправьте открытый файл из сертификата удостоверения устройства. Если вы использовали сценарии для создания тестового сертификата, выберите следующий файл:

      <WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem

    • Идентификатор устройства в Центре Интернета вещей: если необходимо, укажите идентификатор устройства. Идентификаторы устройств можно использовать, чтобы указать отдельное устройство для развертывания модуля. Если не указать идентификатор устройства, используется общее имя (CN) в сертификате X.509.

    • Устройство IoT Edge: выберите значение True, чтобы указать, что это регистрация устройства IoT Edge.

    • Выберите центры Интернета вещей, которым может быть назначено это устройство: выберите связанный центр Интернета вещей, к которому вы хотите подключить устройство. Можно выбрать несколько центров, и устройство будет назначено одному из них в соответствии с выбранной политикой распределения.

    • Начальное состояние двойника устройства: при желании добавьте значение тега в двойник устройства. Теги можно использовать для указания групп устройств для автоматического развертывания. Например:

      {
          "tags": {
             "environment": "test"
          },
          "properties": {
             "desired": {}
          }
      }
      
  4. Выберите Сохранить.

В разделе "Управление регистрацией" можно просмотреть идентификатор регистрации для только что созданной регистрации. Запишите его, так как его можно использовать при подготовке устройства.

После создания регистрации для устройства среда выполнения IoT Edge может автоматически подготавливать устройство во время установки.

Установка Edge Интернета вещей

В этом разделе описана подготовка виртуальной машины Windows или физического устройства для IoT Edge. Затем установите IoT Edge.

Служба Azure IoT Edge использует среду выполнения контейнера, совместимую с OCI. Модуль на основе Moby включается в скрипт установки, что означает, что для установки двигателя нет дополнительных действий.

Чтобы установить среду выполнения IoT Edge, выполните следующие действия.

  1. Запустите PowerShell с правами администратора.

    Используйте сеанс PowerShell для AMD64, а не PowerShell (x86). Чтобы узнать, какой тип сеанса используется, выполните следующую команду:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Выполните команду Deploy-IoTEdge, которая выполняет следующие задачи:

    • Проверяет, находится ли компьютер с Windows в поддерживаемой версии
    • Включение функции контейнеров
    • Скачивает подсистему moby и среду выполнения IoT Edge
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. Перезапустите устройство, если отобразится соответствующий запрос.

Когда вы устанавливаете IoT Edge на устройство, можно указать дополнительные параметры для изменения установки, том числе сделать следующее.

  • Направить трафик через прокси-сервер.
  • Указание установщика локальному каталогу для автономной установки

Подробные сведения об этих дополнительных параметрах см. в статье Скрипты PowerShell для IoT Edge с контейнерами Windows.

Предоставление облачного удостоверения устройству

После установки среды выполнения на устройстве настройте устройство с информацией, которую он использует для подключения к службе подготовки устройств и Центр Интернета вещей.

Подготовьте следующие сведения:

  • Значение области идентификаторов DPS. Вы можете узнать это значение на странице обзора в экземпляре DPS на портале Azure.
  • Файл цепочки сертификатов удостоверений устройств на устройстве.
  • Файл ключа удостоверений устройств на устройстве.
  1. Откройте окно PowerShell с правами администратора. Не забудьте использовать сеанс AMD64 PowerShell при установке IoT Edge, а не PowerShell (x86).

  2. Команда Initialize-IoTEdge настраивает среду выполнения IoT Edge на вашем компьютере. Команда по умолчанию выполняет подготовку вручную с контейнерами Windows, поэтому используйте флаг -DpsX509 для автоматической подготовки с использованием проверки подлинности с сертификатом X.509.

    Замените значения заполнителей для scope_id, identity cert chain path и identity key path соответствующими значениями из экземпляра DPS и путей к файлам на устройстве.

    -RegistrationId paste_registration_id_here Добавьте параметр, если вы хотите задать идентификатор устройства в качестве значения, отличного от имени CN сертификата удостоверения.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -DpsX509 -ScopeId paste_scope_id_here -X509IdentityCertificate paste_identity_cert_chain_path_here -X509IdentityPrivateKey paste_identity_key_path_here
    

    Совет

    В файле конфигурации сертификат и сведения о ключе хранятся в виде URI файлов. Однако команда Initialize-IoTEdge обрабатывает этот шаг форматирования, чтобы можно было указать абсолютный путь к сертификату и файлам ключей на устройстве.

Проверка установки

Если среда выполнения запущена успешно, можете перейти в Центр Интернета вещей и начать развертывание модулей IoT Edge на устройстве.

Можно проверить, используется ли отдельная регистрация, созданная в службе подготовки устройств. Перейдите к экземпляру службы подготовки устройств в портал Azure. Откройте сведения о регистрации для созданной индивидуальной регистрации. Обратите внимание, что регистрация имеет состояние назначено и указан идентификатор устройства.

Чтобы убедиться, что IoT Edge установлена и запущена успешно, выполните следующие команды на устройстве.

Проверьте состояние службы IoT Edge.

Get-Service iotedge

Проверьте журналы службы.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog

Просмотрите список запущенных модулей.

iotedge list

Следующие шаги

Процесс регистрации службы подготовки устройств позволяет задать идентификатор устройства и теги двойников устройств одновременно, когда вы подготавливаете новое устройство. Эти значения можно использовать для указания отдельных устройств или групп устройств с помощью автоматического управления устройствами. См. дополнительные сведения о развертывании и мониторинге модулей IoT Edge с поддержкой масштабирования с помощью портала Azure или Azure CLI.