Я не могу найти никаких инструкций по подключению устройства IoT к концентратору IoT с помощью сертификата X.509 CA с C SDK. Существует образец для C# SDK в https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-security-x509-get-started#register -x509-ca-сертификаты для вашего iot-hub . Наиболее близким, что я могу получить для 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 () был закомментирован.
Моя цель - иметь возможность подключить нисходящее устройство к IoT Hub с помощью X.509, с Edge, настроенным как прозрачный шлюз. Поскольку предоставление DPS нисходящему устройству в настоящее время не поддерживается. последующее устройство может подключаться к IoT Hub только с помощью ключа симметрии c, самоподписанного сертификата X.509 или сертификата CA, подписанного X5.09. Ключ Symmetri c или самозаверяющий X.509 не является вариантом, так как он требует для каждой строки подключения устройства, которую мы не можем предоставить в нашем двоичном файле IoT Device. Подход сертификата подписи CA X.509, кажется, работает, так как все наше устройство может предварительно загрузить с сертификатом, но я не могу найти никакого документа, как заархивировать это.