Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: IoT Edge 1.5
Внимание
IoT Edge 1.5 LTS является поддерживаемым выпуском. IoT Edge 1.4 LTS заканчивается жизнью с 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление 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 на устройстве, используемом для создания сертификатов. Если 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 или Центр Интернета вещей подготовки. Полный сертификат цепочки certs\iot-edge-device-identity-<device-id>-full-chain.cert.pem
Содержит полную цепочку сертификатов, включая промежуточный сертификат. Укажите в файле конфигурации для IoT Edge представление DPS для подготовки групповой регистрации. Закрытый ключ private\iot-edge-device-identity-<device-id>.key.pem
Закрытый ключ, связанный с сертификатом удостоверения устройства. Необходимо указать в файле конфигурации до тех пор, пока вы используете проверку подлинности сертификата (отпечаток или ЦС) для DPS или Центр Интернета вещей.
Создание сертификатов ЦС Edge
Эти сертификаты требуются для сценариев шлюза, так как сертификат Центра сертификации Edge позволяет устройству IoT Edge удостоверить свою личность для подключенных устройств нижнего уровня. Пропустите этот раздел, если вы не подключаете к IoT Edge никакие нижестоящие устройства.
Сертификат Центра сертификации Edge также создает сертификаты для модулей, работающих на устройстве, но среда выполнения IoT Edge может создавать временные сертификаты, если Центр сертификации Edge не настроен. Поместите сертификаты ЦС Edge в раздел config.toml
файла на устройстве IoT Edge. Дополнительные сведения см. в статье о том, как Azure IoT Edge использует сертификаты.
Перейдите к рабочему каталогу
wrkdir
с скриптами создания сертификатов и корневым сертификатом ЦС.Создайте сертификат ЦС IoT Edge и закрытый ключ с помощью следующей команды. Введите имя для сертификата центра сертификации. Не используйте то же имя, что и параметр имени узла в файле конфигурации или идентификатор устройства в Центре Интернета вещей для команды New-CACertsEdgeDevice .
New-CACertsEdgeDevice "<CA cert name>"
Эта команда создает несколько файлов сертификатов и ключей. Скопируйте следующую пару сертификата и ключа на устройство IoT Edge, а также укажите их в файле конфигурации.
certs\iot-edge-device-<CA cert name>-full-chain.cert.pem
private\iot-edge-device-<CA cert name>.key.pem
Создание сертификатов подчиненных устройств
Эти сертификаты необходимы для настройки нижнего устройства Интернета вещей для сценария шлюза и хотят использовать проверку подлинности X.509 с Центр Интернета вещей или DPS. Если вы хотите использовать проверку подлинности симметричного ключа, вам не нужно создавать сертификаты для нижестоящего устройства и пропускать этот раздел.
Проверить подлинность устройства IoT с помощью сертификатов X. 509 можно двумя способами: с помощью самозаверяющих сертификатов или с помощью сертификатов, подписанных центром сертификации (ЦС).
- Для самозаверяющей проверки подлинности X.509, иногда называемой проверкой подлинности отпечатка , необходимо создать новые сертификаты для размещения на устройстве Интернета вещей. Эти сертификаты имеют отпечаток, который указывается в центре Интернета вещей для проверки подлинности.
- Для проверки подлинности, подписанной центром сертификации X.509 ( ЦС), требуется корневой сертификат ЦС, зарегистрированный в Центр Интернета вещей или DPS, которые используются для подписывания сертификатов для устройства Интернета вещей. Любое устройство, использующее сертификат, выданный корневым сертификатом ЦС или любым из его промежуточных сертификатов, может пройти проверку подлинности до тех пор, пока полная цепочка представлена устройством.
Сценарии создания сертификатов могут помочь в создании демонстрационных сертификатов, чтобы можно было проверить любую из этих схем проверки подлинности.
Самозаверяющие сертификаты
При проверке подлинности устройства Интернета вещей с помощью самозаверяющих сертификатов необходимо создать сертификаты устройств, основанные на сертификате корневого ЦС для вашего решения. Затем вы получите шестнадцатеричный отпечаток из сертификатов, чтобы предоставить Центр Интернета вещей. Устройству Интернета вещей также требуется копия своих сертификатов устройства, чтобы оно могло проходить проверку подлинности в Центре Интернета вещей Azure.
Перейдите к рабочему каталогу
wrkdir
с скриптами создания сертификатов и корневым сертификатом ЦС.Создайте два сертификата (основной и вторичный) для подчиненного устройства. Простое соглашение об именовании — использовать для сертификатов имя устройства IoT, после которого добавляется метка "-primary" (основной) или "-secondary" (вторичный). Например:
New-CACertsDevice "<device ID>-primary" New-CACertsDevice "<device ID>-secondary"
Эта команда сценария создает несколько файлов сертификатов и ключей. Следующие сертификаты и пары ключей необходимо скопировать на подчиненное устройство Интернета вещей и добавлять на них ссылки в приложениях, которые подключаются к Центру Интернета вещей Azure:
certs\iot-device-<device ID>-primary-full-chain.cert.pem
certs\iot-device-<device ID>-secondary-full-chain.cert.pem
certs\iot-device-<device ID>-primary.cert.pem
certs\iot-device-<device ID>-secondary.cert.pem
certs\iot-device-<device ID>-primary.cert.pfx
certs\iot-device-<device ID>-secondary.cert.pfx
private\iot-device-<device ID>-primary.key.pem
private\iot-device-<device ID>-secondary.key.pem
Извлеките отпечаток SHA1 (называемый отпечатком в Центр Интернета вещей контекстах) из каждого сертификата. Отпечаток — это шестнадцатеричная строка символа 40. Используйте следующую команду opensl, чтобы просмотреть сертификат и найти отпечаток:
Write-Host (Get-Pfxcertificate -FilePath certs\iot-device-<device name>-primary.cert.pem).Thumbprint
Выполните эту команду дважды, один раз для основного и один раз для дополнительного сертификата. Вы предоставляете отпечатки для обоих сертификатов при регистрации нового устройства Интернета вещей с помощью самозаверяющего сертификата X.509.
Сертификаты, подписанные ЦС
При проверке подлинности устройства Интернета вещей с помощью сертификатов подписанный ЦС, необходимо передать сертификат корневого ЦС для вашего решения в Центр Интернета вещей. Используйте тот же корневой сертификат ЦС для создания сертификатов устройств, которые будут помещены на устройство Интернета вещей, чтобы он смог пройти проверку подлинности с помощью Центр Интернета вещей.
Сертификаты в этом разделе предназначены для шагов руководства по получению сертификатов X.509 из центра Интернета вещей. Введение в эту серию см. в статье Общие сведения о криптографии с открытым ключом и инфраструктуре открытых ключей X.509.
Отправьте файл сертификата корневого ЦС из рабочего каталога
certs\azure-iot-test-only.root.ca.cert.pem
в свой Центр Интернета вещей.Если автоматическая проверка не выбрана, используйте код, предоставленный в портал Azure, чтобы убедиться, что у вас есть сертификат корневого ЦС.
New-CACertsVerificationCert "<verification code>"
Создайте цепочку сертификатов для подчиненного устройства. Используйте тот же идентификатор устройства, под которым устройство зарегистрировано в Центре Интернета вещей Azure.
New-CACertsDevice "<device id>"
Эта команда сценария создает несколько файлов сертификатов и ключей. Следующие сертификаты и пары ключей необходимо скопировать на подчиненное устройство Интернета вещей и добавлять на них ссылки в приложениях, которые подключаются к Центру Интернета вещей Azure:
certs\iot-device-<device id>.cert.pem
certs\iot-device-<device id>.cert.pfx
certs\iot-device-<device id>-full-chain.cert.pem
private\iot-device-<device id>.key.pem