【问题标题】:Azure IoT SDK - connection not accepted problemAzure IoT SDK - 连接不被接受的问题
【发布时间】:2020-10-09 18:59:41
【问题描述】:

我正在使用 Azure IoT SDK for C 尝试在 Azure IoT 门户上的集线器上预配设备。

我已按照说明生成签名证书并将其添加到门户,如此处所述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 时,我不断收到以下授权错误。我已经为运行 Debian 的 X86-64 芯片构建并运行了此代码,并且还为 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:

【问题讨论】:

    标签: c authorization x509 azure-iot-hub azure-iot-sdk


    【解决方案1】:

    使用 X.509 证书将设备连接到 Azure IoT 中心有两种不同的场景:

    • 注册设备并将其直接连接到您的 IoT 中心
    • 使用设备预配服务将您的设备分配和注册到 IoT 中心,以便它可以连接。

    此示例向您展示了如何不使用使用 DPS:https://github.com/Azure/azure-iot-sdk-c/tree/master/iothub_client/samples/iothub_ll_client_x509_sample 将设备直接连接到 IoT 中心。该示例假定您使用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 将您的设备注册到 IoT 中心: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

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多