Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
применимо к: значок 'да'
IoT Edge 1.1
Это важно
Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г.. Чтобы получить сведения о поддержке определенного продукта, службы, технологии или API, перейдите на страницу Политика жизненного цикла поддержки Майкрософт. Дополнительные сведения об обновлении до последней версии IoT Edge см. в статье Update IoT Edge.
Устройствам IoT Edge требуются сертификаты для безопасного обмена данными между средой выполнения, модулями и любыми подчиненными устройствами. Если у вас нет центра сертификации для создания необходимых сертификатов, можно воспользоваться демонстрационными сертификатами, чтобы испытать функции IoT Edge в тестовой среде. В этой статье описывается функциональность сценариев создания сертификатов, которые IoT Edge предоставляет для тестирования.
Предупреждение
Срок действия этих сертификатов истекает через 30 дней, и их не следует использовать в каком-либо производственном сценарии.
Вы можете создать сертификаты на любом компьютере, а затем скопировать их на устройство IoT Edge или создать сертификаты непосредственно на устройстве IoT Edge.
Предпосылки
Компьютер для разработки с установленным Git.
Скачивание скриптов тестового сертификата и настройка рабочего каталога
Репозиторий IoT Edge в GitHub содержит скрипты создания сертификатов, с помощью которых можно создать демонстрационные сертификаты. В этом разделе приводятся инструкции по подготовке сценариев для выполнения на компьютере, работающем под управлением либо Windows, либо Linux.
Чтобы создать демонстрационные сертификаты на устройстве Windows, необходимо установить OpenSSL, затем клонировать скрипты создания сертификатов и настроить их для локального выполнения в PowerShell.
Установите OpenSSL
Установите OpenSSL для Windows на компьютере, который используется для создания сертификатов. Если на вашем устройстве Windows уже установлен OpenSSL, убедитесь, что openssl.exe доступен в переменной среды PATH.
Установить OpenSSL можно несколькими способами, в том числе следующими.
Простой способ. Загрузите и установите любые сторонние двоичные файлы OpenSSL, например из проекта OpenSSL на сайте SourceForge. Добавьте полный путь к файлу openssl.exe в переменную среды PATH.
Рекомендуемый способ. Скачайте исходный код OpenSSL и создайте двоичные файлы на компьютере самостоятельно или с помощью vcpkg. В следующих инструкциях используется vcpkg для скачивания исходного кода, а также компиляции и установки OpenSSL на компьютере Windows с помощью простых действий.
Перейдите в каталог для установки vcpkg. Следуйте указаниям, чтобы скачать и установить vcpkg.
После установки vcpkg выполните следующую команду из командной строки PowerShell, чтобы установить пакет OpenSSL для Windows x64. Обычно установка занимает около пяти минут.
.\vcpkg install openssl:x64-windowsДобавьте
<vcpkg path>\installed\x64-windows\tools\opensslв переменную среды PATH, чтобы сделать файл openssl.exe доступным для вызова.
Подготовка сценариев в PowerShell
Репозиторий Azure IoT Edge в Git содержит сценарии, с помощью которых можно создавать тестовые сертификаты. В этом разделе вы клонируете репозиторий IoT Edge и выполните эти сценарии.
Откройте окно PowerShell с правами администратора.
Клонируйте репозиторий Git службы IoT Edge, который содержит скрипты для создания демонстрационных сертификатов. Используйте команду
git cloneили скачайте ZIP-файл.git clone https://github.com/Azure/iotedge.gitСоздайте каталог, в котором требуется работать, и скопируйте скрипты сертификатов там. Все файлы сертификатов и ключей будут созданы в этом каталоге.
mkdir wrkdir cd .\wrkdir\ cp ..\iotedge\tools\CACertificates\*.cnf . cp ..\iotedge\tools\CACertificates\ca-certs.ps1 .Если репозиторий был загружен в виде ZIP-файла, то имя папки будет
iotedge-master, а остальная часть пути остается той же.Включите PowerShell для выполнения скриптов.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUserДобавьте используемые сценариями функции в глобальное пространство имен PowerShell.
. .\ca-certs.ps1В окне PowerShell отобразится предупреждение о том, что созданные этим сценарием сертификаты предназначены только для тестирования и не должны использоваться в рабочих сценариях.
Убедитесь, что OpenSSL установлен корректно и убедитесь, что конфликтов имен с существующими сертификатами не возникнет. В случае проблем в выходных данных сценария должен быть описан способ их устранения в вашей системе.
Test-CACertsPrerequisites
Создание сертификата корневого удостоверяющего центра
Запустите этот скрипт, чтобы создать корневой ЦС, требующийся на каждом этапе этой статьи.
Сертификат корневого центра сертификации (ЦС) используется для выпуска всех других сертификатов, предназначенных для демонстрационного тестирования сценария IoT Edge. Можно продолжать использовать тот же сертификат корневого уровня ЦС для создания демонстрационных сертификатов для нескольких устройств IoT Edge или подчинённых устройств.
Если у вас уже есть сертификат корневого ЦС в рабочей папке, не создавайте новый. В случае создания нового сертификата корневого ЦС он перезапишет собой старый, и все сертификаты более низкого уровня, созданные с использованием старого корневого ЦС, перестанут работать. Если вы хотите использовать несколько корневых сертификатов ЦС, обязательно разместите их в отдельных папках.
Перейдите в рабочий каталог
wrkdir, в котором размещены скрипты создания сертификатов.Создайте сертификат корневого ЦС и подпишите с его помощью один промежуточный сертификат. Все сертификаты помещаются в рабочий каталог.
New-CACertsCertChain rsaЭта команда сценария создает несколько файлов сертификатов и ключей, но, когда в статьях указывается, что нужно использовать сертификат корневого ЦС, используйте следующий файл:
certs\azure-iot-test-only.root.ca.cert.pem
Этот сертификат необходим, прежде чем создавать дополнительные сертификаты для устройств IoT Edge и подчиненных устройств, как описано в следующих разделах.
Создание сертификата идентификации для устройства IoT Edge
Сертификаты удостоверений устройств IoT Edge используются для подключения и настройки устройств IoT Edge, если вы решили использовать аутентификацию с сертификатом X.509. Если вы используете симметричный ключ для проверки подлинности в Центр Интернета вещей или DPS, эти сертификаты не требуются, и вы можете пропустить этот раздел.
Эти сертификаты работают вне зависимости от того, применяется ли подготовка устройств к добавлению вручную или же выполняется автоматическая подготовка с помощью Службы подготовки устройств к добавлению в Центр Интернета вещей Azure (DPS).
Сертификаты идентификации устройств находятся в разделе Provisioning файла конфигурации на устройстве IoT Edge.
Перейдите к рабочему каталогу
wrkdirс скриптами создания сертификатов и корневым сертификатом ЦС.Создайте сертификат удостоверения устройства IoT Edge и закрытый ключ с помощью следующей команды.
New-CACertsEdgeDeviceIdentity "<device-id>"Имя, которое вы передаете этой команде, — это идентификатор устройства для устройства IoT Edge в Центре Интернета вещей.
Новая команда идентификации устройства создает несколько файлов сертификатов и ключей.
Тип Файл Описание Сертификат удостоверения устройства certs\iot-edge-device-identity-<device-id>.cert.pemПодписан промежуточным сертификатом, созданным ранее. Содержит только сертификат удостоверения. Укажите в файле конфигурации для индивидуальной регистрации DPS или подготовки IoT Hub. Полная цепочка сертификатов certs\iot-edge-device-identity-<device-id>-full-chain.cert.pemСодержит полную цепочку сертификатов, включая промежуточный сертификат. Укажите в файле конфигурации для IoT Edge, чтобы представить в DPS для организации групповой регистрации. Закрытый ключ private\iot-edge-device-identity-<device-id>.key.pemЗакрытый ключ, связанный с сертификатом удостоверения устройства. Необходимо указать в файле конфигурации, если вы используете проверку подлинности сертификата (отпечаток или ЦС) для DPS или IoT Hub.
Создание сертификатов ЦС устройства
Эти сертификаты необходимы для сценариев шлюза , так как сертификат ЦС устройства — это способ проверки удостоверения устройства на нижестоящих устройствах. Этот раздел можно пропустить, если вы не подключаете подчиненные устройства к IoT Edge.
Сертификат ЦС устройства также отвечает за генерацию сертификатов для модулей, работающих на устройстве, но при отсутствии настройки ЦС устройства среда выполнения IoT Edge способна создать временный сертификат. Сертификаты ЦС устройства размещены в секции сертификата в разделе файла config.yaml на устройстве IoT Edge. Дополнительные сведения см. в статье о том, как Azure IoT Edge использует сертификаты.
Перейдите к рабочему каталогу
wrkdirс скриптами создания сертификатов и корневым сертификатом ЦС.Создайте сертификат ЦС IoT Edge и закрытый ключ с помощью следующей команды. Укажите имя для сертификата Центра сертификации. Имя, переданное команде New-CACertsEdgeDevice, не должно совпадать с параметром hostname в файле конфигурации или идентификатором устройства в Центре Интернета вещей.
New-CACertsEdgeDevice "<CA cert name>"Эта команда создает несколько файлов сертификатов и ключей. Следующая пара сертификатов и ключей должна быть скопирована на устройство IoT Edge и ссылаться на нее в файле конфигурации:
certs\iot-edge-device-ca-<CA cert name>-full-chain.cert.pemprivate\iot-edge-device-ca-<CA cert name>.key.pem
Создайте сертификаты подчиненных устройств
Эти сертификаты необходимы для настройки конечного устройства IoT в сценарии шлюза и использования проверки подлинности X.509 с IoT Hub или DPS. Если вы хотите использовать проверку подлинности симметричного ключа, вам не нужно создавать сертификаты для нижестоящего устройства и пропускать этот раздел.
Проверить подлинность устройства IoT с помощью сертификатов X. 509 можно двумя способами: с помощью самозаверяющих сертификатов или с помощью сертификатов, подписанных центром сертификации (ЦС).
- Для самозаверяющей проверки подлинности X.509, иногда называемой проверкой подлинности отпечатка , необходимо создать новые сертификаты для размещения на устройстве Интернета вещей. Эти сертификаты имеют отпечаток, который указывается в центре Интернета вещей для проверки подлинности.
- Для проверки подлинности, подписанной центром сертификации X.509, требуется корневой сертификат ЦС, зарегистрированный в IoT Hub или DPS, который используется для подписания сертификатов вашего устройства Интернета вещей. Любое устройство, использующее сертификат, выданный корневым сертификатом ЦС или любым из его промежуточных сертификатов, может пройти проверку подлинности до тех пор, пока полная цепочка представлена устройством.
Сценарии создания сертификатов могут помочь в создании демонстрационных сертификатов, чтобы можно было проверить любую из этих схем проверки подлинности.
Самоподписанные сертификаты
При проверке подлинности устройства Интернета вещей с помощью самозаверяющих сертификатов необходимо создать сертификаты устройств, основанные на сертификате корневого ЦС для вашего решения. Затем вы получите шестнадцатеричный отпечаток сертификата из сертификатов, чтобы предоставить Центру управления IoT. Вашему устройству Интернета вещей также требуется копия его сертификатов, чтобы оно могло проходить аутентификацию в IoT Hub.
Перейдите к рабочему каталогу
wrkdirс скриптами создания сертификатов и корневым сертификатом ЦС.Создайте два сертификата (основной и вторичный) для подчиненного устройства. Простое соглашение об именовании заключается в том, чтобы создавать сертификаты с именем устройства IoT, к которому затем добавляется метка "основной" или "вторичный". Рассмотрим пример.
New-CACertsDevice "<device ID>-primary" New-CACertsDevice "<device ID>-secondary"Эта команда сценария создает несколько файлов сертификатов и ключей. Следующие сертификаты и пары ключей необходимо скопировать на подключенное устройство Интернета вещей и использовать в приложениях, которые подключаются к Центру Интернета вещей Azure.
certs\iot-device-<device ID>-primary-full-chain.cert.pemcerts\iot-device-<device ID>-secondary-full-chain.cert.pemcerts\iot-device-<device ID>-primary.cert.pemcerts\iot-device-<device ID>-secondary.cert.pemcerts\iot-device-<device ID>-primary.cert.pfxcerts\iot-device-<device ID>-secondary.cert.pfxprivate\iot-device-<device ID>-primary.key.pemprivate\iot-device-<device ID>-secondary.key.pem
Извлеките отпечаток SHA1 (называемый отпечатком в контексте IoT Hub) из каждого сертификата. Отпечаток — это строка из 40 шестнадцатеричных символов. Используйте следующую команду opensl, чтобы просмотреть сертификат и найти отпечаток:
openssl x509 -in certs\iot-device-<device name>-primary.cert.pem -text -thumbprintВыполните эту команду дважды, один раз для основного и один раз для дополнительного сертификата. Вы предоставляете отпечатки для обоих сертификатов при регистрации нового устройства Интернета вещей с помощью самозаверяющего сертификата X.509.
Сертификаты, подписанные Удостоверяющим Центром (УЦ)
При аутентификации устройства Интернета вещей с помощью сертификатов, подписанных ЦС, необходимо загрузить корневой сертификат ЦС вашего решения в IoT Hub. Используйте тот же корневой сертификат ЦС для создания сертификатов устройств для установки на ваше IoT устройство, чтобы устройство смогло пройти проверку подлинности с помощью IoT Центра.
Сертификаты в этом разделе предназначены для шагов из серии учебных пособий по сертификатам X.509 в IoT Hub. Введение в эту серию см. в статье Общие сведения о криптографии с открытым ключом и инфраструктуре открытых ключей X.509.
Отправьте файл сертификата корневого удостоверяющего центра из рабочего каталога
certs\azure-iot-test-only.root.ca.cert.pemв ваш IoT-хаб.Если автоматическая проверка не выбрана, используйте код, предоставленный в портале Azure, чтобы убедиться, что вы владеете сертификатом корневого ЦС.
New-CACertsVerificationCert "<verification code>"Создайте цепочку сертификатов для подчиненного устройства. Используйте тот же идентификатор устройства, под которым устройство зарегистрировано в Центре Интернета вещей Azure.
New-CACertsDevice "<device id>"Эта команда сценария создает несколько файлов сертификатов и ключей. Следующие сертификаты и пары ключей необходимо скопировать на подключенное устройство Интернета вещей и использовать в приложениях, которые подключаются к Центру Интернета вещей Azure.
certs\iot-device-<device id>.cert.pemcerts\iot-device-<device id>.cert.pfxcerts\iot-device-<device id>-full-chain.cert.pemprivate\iot-device-<device id>.key.pem