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


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

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

Внимание

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

В этой статье приведены комплексные инструкции по регистрации и подготовке устройства Windows IoT Edge.

Примечание.

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

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

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

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

Действия, описанные в этой статье, посвящены процессу, который называется подготовкой вручную, в ходе которого вы подключаете одно устройство к Центру Интернета вещей. Для подготовки вручную можно использовать два варианта проверки подлинности устройств IoT Edge:

  • Симметричные ключи. При создании удостоверения устройства в Центр Интернета вещей служба создает два ключа. Вы помещаете один ключ на устройство и предоставляете ключ Центру Интернета вещей при проверке подлинности.

    Этот метод проверки подлинности быстрее настроить, но он не такой безопасный.

  • Самозаверяющий сертификат X.509. Вы создаете два сертификата удостоверения X.509 и размещаете их на устройстве. При создании нового удостоверения устройства в Центре Интернета вещей вы предоставляете отпечатки обоих сертификатов. Когда устройство проходит проверку подлинности в Центре Интернета вещей, оно предоставляет один сертификат, и Центр Интернета вещей проверяет, соответствует ли сертификат своему отпечатку.

    Этот метод проверки подлинности является более безопасным и рекомендуется для рабочих сценариев.

В этой статье рассматривается использование сертификатов X.509 в качестве метода проверки подлинности. Если вы хотите использовать симметричные ключи, см. статью "Создание и подготовка устройства IoT Edge в Windows с помощью симметричного ключа".

Примечание.

Если у вас есть много устройств для настройки и не требуется вручную подготовить каждую из них, используйте одну из следующих статей, чтобы узнать, как IoT Edge работает с службой подготовки устройств Центр Интернета вещей:

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

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

Средства управления устройствами

Для регистрации устройства можно использовать портал Azure, Visual Studio Code или Azure CLI. Каждая программа имеет собственные предварительные требования:

Центр Интернета вещей (бесплатно или уровня "Стандартный") в подписке Azure.

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

Устройство с Windows.

Для использования IoT Edge с контейнерами Windows нужна ОС Windows версии 1809 (сборка 17763), которая является последней сборкой Windows с долгосрочной поддержкой. Не забудьте просмотреть перечень поддерживаемых номеров SKU в списке поддерживаемых систем.

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

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

При подготовке устройства IoT Edge с сертификатами X.509 используется так называемый сертификат удостоверения устройства. Эти сертификаты используются только для подготовки устройства IoT Edge и проверки подлинности устройства в Центре Интернета вещей Azure. Это конечный сертификат, который не подписывает другие сертификаты. Сертификат удостоверения устройства отделен от сертификатов центра сертификации (ЦС), которые устройство IoT Edge предоставляет модулям или подчиненным устройствам для проверки.

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

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

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

  • Два сертификата удостоверений устройств с соответствующими сертификатами закрытых ключей в форматах CER или PEM.

    Для среды выполнения IoT Edge предоставляется один набор файлов сертификатов или ключей. При создании сертификатов удостоверений устройств задайте общее имя сертификата (CN) с идентификатором устройства, которое должно иметь устройство в Центре Интернета вещей.

  • Отпечатки, взятые из сертификатов удостоверений устройств.

    Значения отпечатков — это 40 шестнадцатеричных символов для хэшей SHA-1 или 64 шестнадцатеричных символа для хэшей SHA-256. Оба отпечатка предоставляются в Центре Интернета вещей во время регистрации устройства.

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

Одним из способов получения отпечатка из сертификата является следующая команда OpenSSL:

openssl x509 -in <certificate filename>.pem -text -fingerprint

Зарегистрировать устройство

Вы можете использовать портал Azure, Visual Studio Code или Azure CLI для регистрации устройства в зависимости от вашего предпочтения.

В Центре Интернета вещей на портале Azure устройства IoT Edge создаются и администрируются независимо от других устройств Интернета вещей, не поддерживающих IoT Edge.

  1. Войдите на портал Azure и перейдите к своему Центру Интернета вещей.

  2. В левой области выберите "Устройства " в меню, а затем выберите " Добавить устройство".

  3. На странице Создание устройства введите приведенные ниже сведения:

    • Создайте описательный идентификатор устройства. Запишите этот идентификатор устройства, так как вы будете использовать его позже.
    • Установите флажок устройства IoT Edge.
    • В качестве типа проверки подлинности выберите самозаверяющий сертификат X.509.
    • Укажите отпечатки первичного и вторичного сертификата удостоверения. Значения отпечатков — это 40 шестнадцатеричных символов для хэшей SHA-1 или 64 шестнадцатеричных символа для хэшей SHA-256.
  4. Выберите Сохранить.

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

Просмотр зарегистрированных устройств и получение сведений о подготовке

Устройства, использующие проверку подлинности сертификата X.509, нуждаются в имени центра Интернета вещей, имени устройства и их файлах сертификатов для завершения установки и подготовки среды выполнения IoT Edge.

На странице "Устройства", подключенные к центру Интернета вещей, отображаются устройства с поддержкой пограничных устройств . Список можно отфильтровать по типу Iot Edge Device.

Снимок экрана: просмотр всех устройств 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.

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

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

  1. На устройстве IoT Edge запустите PowerShell от имени администратора.

  2. Выполните команду Initialize-IoTEdge, которая настраивает среду выполнения IoT Edge на вашем компьютере.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -ManualX509
    
    • Если вы скачали сценарий IoTEdgeSecurityDaemon.ps1 на устройство для автономной установки или установки определенной версии, обязательно укажите локальную копию сценария.

      . <path>/IoTEdgeSecurityDaemon.ps1
      Initialize-IoTEdge -ManualX509
      
  3. При появлении запроса введите следующие сведения:

    • IotHubHostName: имя узла центра Интернета вещей, к которому будет подключено устройство. Например, {IoT_hub_name}.azure-devices.net.
    • DeviceId: идентификатор, указанный при регистрации устройства.
    • X509IdentityCertificate: абсолютный путь к сертификату удостоверения на устройстве. Например, C:\path\identity_certificate.pem.
    • X509IdentityPrivateKey: абсолютный путь к файлу закрытого ключа для предоставленного сертификата удостоверения. Например, C:\path\identity_key.pem.

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

  • Направить трафик через прокси-сервер.
  • Объявить определенный образ контейнера edgeAgent и указать учетные данные, если он находится в частном реестре.

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


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

Убедитесь, что среда выполнения успешно установлена и настроена на устройстве IoT Edge.

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

Get-Service iotedge

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

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

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

iotedge list

Автономная установка или установка определенной версии (необязательно)

Действия, описанные в этом разделе, предназначены для сценариев, не охваченных стандартными шагами по установке. К ним могут относиться:

  • Установка IoT Edge в автономном режиме
  • Установка версии релиз-кандидата
  • Установка версии, отличной от последней.

Во время установки скачиваются три файла:

  • сценарий PowerShell, содержащий инструкции по установке;
  • CAB-файл Microsoft Azure IoT Edge, содержащий управляющую программу безопасности IoT Edge (iotedged), подсистему контейнеров Moby и интерфейс командной строки Moby CLI;
  • установщик распространяемого пакета Visual C++ (среда выполнения VC).

Если ваше устройство будет отключено от сети во время установки или вы хотите установить определенную версию IoT Edge, эти файлы можно скачать на устройство заранее. Когда придет время выполнить установку, укажите сценарию установки каталог, содержащий скачанные файлы. Установщик сначала проверит этот каталог, а затем скачает только компоненты, которые не были найдены. Если все файлы доступны в локальном каталоге, можно выполнить установку без подключения к Интернету.

  1. Сведения о последних и предыдущих версиях файлов установки IoT Edge см. в разделе Выпуски Azure IoT Edge.

  2. Найдите версию, которую вы хотите установить, и скачайте на устройство IoT приведенные ниже файлы из раздела Assets (Ресурсы) в заметках о выпуске:

    • IoTEdgeSecurityDaemon.ps1
    • Microsoft-Azure-IoTEdge-amd64.cab из канала выпусков 1.1.

    Очень важно использовать сценарий PowerShell из того же выпуска, что и выбранный CAB-файл, так как функциональные возможности у каждого выпуска разные.

  3. Если скачанный CAB-файл имеет суффикс архитектуры, переименуйте его в Microsoft-Azure-IoTEdge.cab.

  4. При необходимости скачайте установщик распространяемого пакета Visual C++. Например, сценарий PowerShell использует эту версию: vc_redist.x64.exe. Сохраните установщик на устройстве IoT в той же папке, что и файлы IoT Edge.

  5. Чтобы выполнить установку с автономными компонентами, укажите через точку локальную копию сценария PowerShell.

  6. Выполните команду Deploy-IoTEdge с параметром -OfflineInstallationPath. Укажите абсолютный путь к каталогу файлов. Например,

    . path_to_powershell_module_here\IoTEdgeSecurityDaemon.ps1
    Deploy-IoTEdge -OfflineInstallationPath path_to_file_directory_here
    

    Команда развертывания будет использовать все компоненты, найденные в указанном локальном каталоге файлов. Если CAB-файл или установщик Visual C++ отсутствуют, будет выполнена попытка скачать их.

Удаление IoT Edge

Если вы хотите удалить установленный экземпляр IoT Edge с устройства Windows, используйте команду Uninstall-IoTEdge в окне PowerShell с правами администратора. Эта команда удаляет среду выполнения IoT Edge вместе с существующей конфигурацией и данными подсистемы Moby.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; `
Uninstall-IoTEdge

Для получения дополнительных сведений о параметрах удаления используйте команду Get-Help Uninstall-IoTEdge -full.

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

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