首页 > 解决方案 > 如何使用带有 C SDK 的 X.509 CA 将下游 IoT 设备连接到 IoT 中心

问题描述

我找不到有关如何使用带有 C SDK 的 X.509 CA 证书将 IoT 设备连接到 IoT 中心的任何说明。在https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-security-x509-get-started#register-x509-ca-certificates-to-有一个 C# SDK 示例你的 iot 集线器。我能得到的最接近 C-SDK 的是这个 API https://docs.microsoft.com/en-us/azure/iot-hub/iot-c-sdk-ref/iothub-device-client-h/iothubdeviceclient- createfromdeviceauth,但它没有提供任何关于如何使用它的文档。

https://github.com/Azure/azure-iot-sdk-c/tree/a698fa3fe9379b7a51a466e0a6b1fe5042db29c5/provisioning_client/samples/iothub_client_sample_hsm中有一个示例代码,这似乎暗示了如何使用它。但是对 IoTHubDeviceClient_CreateFromDeviceAuth() 的函数调用已被注释掉。

我的目标是能够使用 X.509 将下游设备连接到 IoT 中心,并将 Edge 配置为透明网关。由于当前不支持向下游设备提供 DPS。下游设备只能使用对称密钥、X.509 自签名或 X5.09 CA 签名证书连接到 IoT 中心。对称密钥或 X.509 自签名不是一个选项,因为它需要每个设备连接字符串,我们无法在我们的 IoT 设备二进制文件中提供。X.509 CA 签名证书方法似乎可行,因为我们所有的设备都可以预加载证书,但我找不到任何文档如何存档。

标签: azure-iot-hubazure-iot-sdk

解决方案


在 IoT 中心方面,您的设备使用的语言是无关紧要的。按照建议进行设置,然后参考此示例:https ://github.com/Azure/azure-iot-sdk-c/blob/master/iothub_client/samples/iothub_ll_client_x509_sample/iothub_ll_client_x509_sample.c对于 X.509 C客户。


推荐阅读