Образец Azure Iothub SDK MQTT - ошибка сертификата TLS

Я пытаюсь запустить Azure iothub SDK C образец протокола MQTT. Я скомпилировал проект hte, но когда я запускаю программу, она возвращает ошибку об SSL-подпрограммах

Это полная ошибка:

error:1416F086: SSL routines:tls_process_server_certificate:certificate verify failed
Info: Closing tlsio from a state other than TLSIO_STATE_EXT_OPEN or TLSIO_STATE_EXT_ERROR

Я получил только эту ошибку, повторенную пять раз, по одному на каждое принятое сообщение, готовое для передачи на IoTHub.

Я читал, что мне нужно установить доверие к сертификатам openssl в каталоге примеров, но я не понял, как выполнить эту задачу или как избежать этой проблемы.

Есть кто-то, кто уже сталкивался с этой проблемой?

2 ответа

В этом документе подробно описывается, как подготовить среду разработки, а также как запустить примеры на Linux, Windows или других платформах. Пожалуйста, обратитесь к разделу, чтобы перестроить ваш код, а затем запустить для тестирования.

Попробуйте использовать опцию TrustedCerts. С помощью этой опции вы можете передать в SDK сертификат, который используется для проверки сертификата сервера. Обычно это используется, когда либо у вас нет корневого сертификата, Baltimore CyberTrust, либо на вашем устройстве отсутствует концепция доверенного корневого хранилища сертификатов. Вы можете найти пример использования этой опции в

<repositoryRoot>\iothub_client\samples\iothub_client_sample_amqp_shared\iothub_client_sample_amqp_shared.c

https://github.com/Azure/azure-iot-sdk-c/blob/44827986929af7f4fbb41806b880a6da4e13d3e8/iothub_client/samples/iothub_client_sample_amqp_shared/iothub_client_sample_amqp_shared.c#L261

Другие вопросы по тегам