Azure IoT SDK - проблема с подключением не принимается - PullRequest
0 голосов
/ 19 июня 2020

Я использую Azure IoT SDK для C, чтобы попытаться подготовить устройство в моем концентраторе на Azure IoT Portal.

Я выполнил инструкции, чтобы сгенерировать подписанные сертификаты и добавить их на портал, как указано здесь https://github.com/Azure/azure-iot-sdk-c/blob/master/tools/CACertificates/CACertificateOverview.md

, а также здесь, в этом руководстве https://kevinsaye.wordpress.com/2020/04/14/using-a-real-certificate-with-the-azure-iot-client-c-sdk-and-the-provisioning-service/.

Когда я запускаю пример кода prov_dev_client_ll_sample. c со всеми моими изменениями, я постоянно получаю указанную ниже ошибку авторизации. Я собрал и запустил этот код для чипа X86-64 под управлением Debian, а также скомпилировал его для чипа ARM, что привело к одной и той же ошибке.

На портале Azure я попытался создать группа регистрации, связывающая сертификаты, а также попыталась создать отдельную регистрацию, явно добавив сертификаты. Ничего не работает. Люди предположили, что мои часы могут быть устаревшими. Однако, когда я запускаю date , все выглядит нормально.

Любая помощь будет принята с благодарностью. Я уже более двух дней пытаюсь решить эту проблему.

Running provisioning appplication..
Provisioning API Version : 1.3.8
Iothub API Version: 1.3.8
Device Certificate Name File: Device_identity.txt
Device Certificate PEM File : Device_cert.pem
Device Private Key PEM File : Device_key.pem
Error: Time:Fri Jun 19 12:02:42 2020 File:/home/azure-iot-sdk- 
c/provisioning_client/src/prov_transport_mqtt_common.c Func:mqtt_operation_complete_callback Line:208 
Connection Not Accepted: 0x5: Not Authorized
Error: Time:Fri Jun 19 12:02:42 2020 File:/home/azure-iot-sdk- 
c/provisioning_client/src/prov_transport_mqtt_common.c Func:mqtt_error_callback Line:139 MQTT 
communication error
Error: Time:Fri Jun 19 12:02:42 2020 File:/home/azure-iot-sdk-
c/provisioning_client/src/prov_device_ll_client.c Func:on_transport_registration_data Line:771 
Failure 
retrieving data from the provisioning service
Failure encountered on registration PROV_DEVICE_RESULT_DEV_AUTH_ERROR
registration failed!
Press any enter to continue:

1 Ответ

0 голосов
/ 22 июня 2020

Существует два разных сценария ios использования сертификата X.509 для подключения устройства к Azure концентратору Интернета вещей:

  • Зарегистрируйте и подключите устройство напрямую к концентратору Интернета вещей
  • Используйте службу подготовки устройств, чтобы назначить и зарегистрировать свое устройство в концентраторе Интернета вещей, чтобы оно могло подключаться.

В этом примере показано, как подключить устройство напрямую к концентратору Интернета вещей без с использованием DPS: https://github.com/Azure/azure-iot-sdk-c/tree/master/iothub_client/samples/iothub_ll_client_x509_sample. В примере предполагается, что вы используете сценарии, описанные в https://github.com/Azure/azure-iot-sdk-c/blob/master/tools/CACertificates/CACertificateOverview.md, для создания ключей и сертификатов. Для получения дополнительной информации см .: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-x509ca-overview.

Этот образец (тот, который вы пытаетесь запустить) показывает вам, как использовать DPS для регистрации вашего устройства в Центре Интернета вещей: https://github.com/Azure/azure-iot-sdk-c/tree/master/provisioning_client/samples/prov_dev_client_sample. В этом примере для генерации ключей и сертификатов (а не скриптов) используется смоделированный аппаратный модуль безопасности (HSM). Для получения дополнительной информации о том, как запустить этот пример, см. https://docs.microsoft.com/azure/iot-dps/quick-create-simulated-device-x509.

...