Создание демонстрационных сертификатов для тестирования функций устройства IoT Edge
Область применения: 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.
Чтобы создать демонстрационные сертификаты на устройстве Linux, необходимо клонировать скрипты создания и настроить их для локального запуска в bash.
Клонируйте репозиторий Git службы IoT Edge, который содержит скрипты для создания демонстрационных сертификатов.
git clone https://github.com/Azure/iotedge.git
Создайте каталог, в котором требуется работать, и скопируйте скрипты сертификатов там. Все файлы сертификатов и ключей будут созданы в этом каталоге.
mkdir wrkdir cd wrkdir cp ../iotedge/tools/CACertificates/*.cnf . cp ../iotedge/tools/CACertificates/certGen.sh .
Запустите этот скрипт, чтобы создать корневой ЦС, необходимый для каждого шага в этой статье.
Сертификат корневого ЦС используется для создания всех других демонстрационных сертификатов, предназначенных для тестирования сценария IoT Edge. Можно использовать один и тот же сертификат корневого ЦС для создания демонстрационных сертификатов для нескольких устройств IoT Edge или подчиненных устройств.
Если у вас уже есть сертификат корневого ЦС в рабочей папке, не создавайте новый. В случае создания нового сертификата корневого ЦС он перезапишет собой старый, и все сертификаты более низкого уровня, созданные с использованием старого корневого ЦС, перестанут работать. Если необходимо использовать несколько сертификатов корневых ЦС, обязательно разместите их в отдельных папках.
Перейдите в рабочий каталог
wrkdir
, в котором размещены скрипты создания сертификатов.Создайте корневой сертификат ЦС и один промежуточный сертификат.
./certGen.sh create_root_and_intermediate
Эта команда сценария создает несколько файлов сертификатов и ключей, но, когда в статьях указывается, что нужно использовать сертификат корневого ЦС, используйте следующий файл:
certs/azure-iot-test-only.root.ca.cert.pem
Этот сертификат необходим, прежде чем создавать дополнительные сертификаты для устройств IoT Edge и подчиненных устройств, как описано в следующих разделах.
Сертификаты удостоверений устройств IoT Edge используются для подготовки устройств IoT Edge, если вы решили использовать проверку подлинности сертификата X.509. Если вы используете симметричный ключ для проверки подлинности в Центр Интернета вещей или DPS, эти сертификаты не требуются, и вы можете пропустить этот раздел.
Эти сертификаты работают вне зависимости от того, применяется ли подготовка устройств к добавлению вручную или же выполняется автоматическая подготовка с помощью Службы подготовки устройств к добавлению в Центр Интернета вещей Azure (DPS).
Сертификаты удостоверений устройств находятся в разделе Provisioning (Подготовка к добавлению) файла конфигурации на устройстве IoT Edge.
Перейдите к рабочему каталогу
wrkdir
с скриптами создания сертификатов и корневым сертификатом ЦС.Создайте сертификат удостоверения устройства IoT Edge и закрытый ключ с помощью следующей команды.
./certGen.sh create_edge_device_identity_certificate "<device-id>"
Имя, которое вы передаете этой команде, — это идентификатор устройства для устройства IoT Edge в Центр Интернета вещей.
Скрипт создает несколько файлов сертификатов и ключей, включая три, которые используются при создании отдельной регистрации в DPS и установке среды выполнения IoT Edge:
Тип Файл Description Сертификат удостоверения устройства 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 заключается в том, как устройство IoT Edge проверяет его удостоверение на подчиненных устройствах. Этот раздел можно пропустить, если вы не подключаетесь ни к одному из подчиненных устройств к IoT Edge.
Сертификат ЦС Edge также отвечает за создание сертификатов для модулей, работающих на устройстве, но среда выполнения IoT Edge может создавать временные сертификаты, если ЦС Edge не настроен. Сертификаты ЦС Edge перейдите в раздел config.toml
ЦС Edge файла на устройстве IoT Edge. Дополнительные сведения см. в статье о том, как Azure IoT Edge использует сертификаты.
Перейдите в рабочий каталог, содержащий сценарии создания сертификатов и сертификат корневого ЦС.
Создайте сертификат ЦС IoT Edge и закрытый ключ с помощью следующей команды. Укажите имя для сертификата ЦС. Имя, переданное команде create_edge_device_ca_certificate, не должно совпадать с параметром имени узла в файле конфигурации или идентификатором устройства в Центр Интернета вещей.
./certGen.sh create_edge_device_ca_certificate "<CA cert name>"
Эта команда сценария создает несколько файлов сертификатов и ключей. Следующая пара сертификатов и ключей должна быть скопирована на устройство IoT Edge и ссылаться на нее в файле конфигурации:
certs/iot-edge-device-ca-<CA cert name>-full-chain.cert.pem
private/iot-edge-device-ca-<CA cert name>.key.pem
Эти сертификаты необходимы для настройки нижнего устройства Интернета вещей для сценария шлюза и хотят использовать проверку подлинности X.509 с Центр Интернета вещей или DPS. Если вы хотите использовать проверку подлинности симметричного ключа, вам не нужно создавать сертификаты для нижестоящего устройства и пропускать этот раздел.
Проверить подлинность устройства IoT с помощью сертификатов X. 509 можно двумя способами: с помощью самозаверяющих сертификатов или с помощью сертификатов, подписанных центром сертификации (ЦС).
- Для самозаверяющей проверки подлинности X.509, иногда называемой проверкой подлинности отпечатка , необходимо создать новые сертификаты для размещения на устройстве Интернета вещей. Эти сертификаты имеют отпечаток, который указывается в центре Интернета вещей для проверки подлинности.
- Для проверки подлинности, подписанной центром сертификации X.509 ( ЦС), требуется корневой сертификат ЦС, зарегистрированный в Центр Интернета вещей или DPS, которые используются для подписывания сертификатов для устройства Интернета вещей. Любое устройство, использующее сертификат, выданный корневым сертификатом ЦС или любым из его промежуточных сертификатов, может пройти проверку подлинности до тех пор, пока полная цепочка представлена устройством.
Сценарии создания сертификатов могут помочь в создании демонстрационных сертификатов, чтобы можно было проверить любую из этих схем проверки подлинности.
При проверке подлинности устройства Интернета вещей с помощью самозаверяющих сертификатов необходимо создать сертификаты устройств, основанные на сертификате корневого ЦС для вашего решения. Затем вы получите шестнадцатеричный отпечаток из сертификатов, чтобы предоставить Центр Интернета вещей. Устройству Интернета вещей также требуется копия своих сертификатов устройства, чтобы оно могло проходить проверку подлинности в Центре Интернета вещей Azure.
Перейдите в рабочий каталог, содержащий сценарии создания сертификатов и сертификат корневого ЦС.
Создайте два сертификата (основной и вторичный) для подчиненного устройства. Простое соглашение об именовании — использовать для сертификатов имя устройства IoT, после которого добавляется метка "-primary" (основной) или "-secondary" (вторичный). Например:
./certGen.sh create_device_certificate "<device name>-primary" ./certGen.sh create_device_certificate "<device name>-secondary"
Эта команда сценария создает несколько файлов сертификатов и ключей. Следующие сертификаты и пары ключей необходимо скопировать на подчиненное устройство Интернета вещей и добавлять на них ссылки в приложениях, которые подключаются к Центру Интернета вещей Azure:
certs/iot-device-<device name>-primary-full-chain.cert.pem
certs/iot-device-<device name>-secondary-full-chain.cert.pem
certs/iot-device-<device name>-primary.cert.pem
certs/iot-device-<device name>-secondary.cert.pem
certs/iot-device-<device name>-primary.cert.pfx
certs/iot-device-<device name>-secondary.cert.pfx
private/iot-device-<device name>-primary.key.pem
private/iot-device-<device name>-secondary.key.pem
Извлеките отпечаток SHA1 (называемый отпечатком в Центр Интернета вещей контекстах) из каждого сертификата. Отпечаток — это шестнадцатеричная строка символа 40. Используйте следующую команду opensl, чтобы просмотреть сертификат и найти отпечаток:
openssl x509 -in certs/iot-device-<device name>-primary.cert.pem -text -thumbprint | sed 's/[:]//g'
Вы предоставляете первичный и вторичный отпечаток при регистрации нового устройства Интернета вещей с помощью самозаверяющего сертификата X.509.
При проверке подлинности устройства Интернета вещей с помощью сертификатов подписанный ЦС, необходимо передать сертификат корневого ЦС для вашего решения в Центр Интернета вещей. Используйте тот же корневой сертификат ЦС для создания сертификатов устройств, которые будут помещены на устройство Интернета вещей, чтобы он смог пройти проверку подлинности с помощью Центр Интернета вещей.
Сертификаты в этом разделе предназначены для шагов руководства по получению сертификатов X.509 из центра Интернета вещей. Введение в эту серию см. в статье Общие сведения о криптографии с открытым ключом и инфраструктуре открытых ключей X.509.
Отправьте файл сертификата корневого ЦС из рабочего каталога
certs\azure-iot-test-only.root.ca.cert.pem
в свой Центр Интернета вещей.Если автоматическая проверка не выбрана, используйте код, предоставленный в портал Azure, чтобы убедиться, что у вас есть сертификат корневого ЦС.
./certGen.sh create_verification_certificate "<verification code>"
Создайте цепочку сертификатов для подчиненного устройства. Используйте тот же идентификатор устройства, под которым устройство зарегистрировано в Центре Интернета вещей Azure.
./certGen.sh create_device_certificate "<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