#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. Спасибо, что поделились отзывами! Ваши отзывы ценны и передаются автору контента для оценки и обновления документа по мере необходимости.