我找不到有关如何使用X.509 CA证书和C SDK将IoT设备连接到IoT中心的任何说明。 https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-security-x509-get-started#register-x509-ca-certificates-to-your-iot-hub有一个C#SDK的示例。对于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()的函数调用已被注释掉。
我的目标是将Edge配置为透明网关,从而能够使用X.509将下游设备连接到IoT中心。由于当前不支持向下游设备提供DPS。下游设备只能使用对称密钥,X.509自签名或X5.09 CA签名证书连接到IoT中心。不能选择对称密钥或X.509自签名,因为它需要每个设备连接字符串,而我们无法在IoT设备二进制文件中提供。 X.509 CA签名的证书方法似乎可行,因为我们所有的设备都可以预加载证书,但是我找不到任何文档将其存档。
答案 0 :(得分:0)
从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客户端)。