Как создать образец сертификата CA X.509 для модуля Azure IoTHub?

#python #x509 #azure-iot-hub

#python #x509 #azure-iot-hub

Вопрос:

Я следовал инструкциям в этом руководстве по созданию модуля IoT hub, поэтому я могу поэкспериментировать с двойными модулями для моего образца устройства. Все работает хорошо, пока я создаю модуль с токенами SAS, как описано в руководстве.

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

 module_client = IoTHubModuleClient.create_from_x509_certificate(cert, HOSTNAME, DEVICE_ID, MODULE_ID)
  

… с cert сертификатом X.509, который я создал для своего образца устройства, используя эти инструкции (т.Е. ./certGen.sh create_device_certificate SampleDevice4 ), Я получаю следующую ошибку:

Операция подключения: завершение с ошибкой UnauthorizedError («Отказано в подключении: не авторизовано».)

Я знаю, что мой образец сертификата устройства действителен, потому что я могу успешно использовать его в этом руководстве о двойниках устройств. Поэтому я предполагаю, что мне нужно создать новую пару сертификат / ключ X.509 специально для этого модуля, в отличие от использования сертификата устройства. Но я не смог найти, как их создать. Кто-нибудь знает, как сгенерировать сертификаты CA X.509 для модуля, а не для устройства?

Ответ №1:

Я обнаружил, что можно сгенерировать сертификат модуля X.509, используя следующий синтаксис: ./certGen.sh create_device_certificate SampleDevice4/mymodule . Обратите внимание, что косая черта должна быть экранирована, чтобы openssl мог правильно сгенерировать общее имя (CN) для сертификата. Насколько я могу судить, это недокументированное поведение, поэтому я не знаю, можно ли надежно использовать это соглашение в будущем. Я оставил отзыв о руководстве, чтобы спросить, так ли это.

Комментарии:

1. Спасибо, что поделились отзывами! Ваши отзывы ценны и передаются автору контента для оценки и обновления документа по мере необходимости.