TencentCloud / tencentcloud-iot-sdk-embedded-c

SDK for connecting to Tencent Cloud IoT from a device using embedded C.
https://cloud.tencent.com/product/iothub
Other
148 stars 71 forks source link

使用SSL认证失败,直接使用的是mqtt_sample,同样的证书用MQTT.fx测试没有问题 #29

Closed homent-hutu closed 4 years ago

homent-hutu commented 4 years ago

INF|2020-06-11 16:18:02|qcloud_iot_device.c|iot_device_info_set(50): SDK_Ver: 3.2.0, Product_ID: PRODUCT_ID, Device_Name: YOUR_DEV_NAME DBG|2020-06-11 16:18:02|mqtt_client.c|qcloud_iot_mqtt_init(426): cert file: /home/xx/work/qcloud-iot-sdk-embedded-c/output/release/bin/certs/client.pem DBG|2020-06-11 16:18:02|mqtt_client.c|qcloud_iot_mqtt_init(427): key file: /home/xx/work/qcloud-iot-sdk-embedded-c/output/release/bin/certs/client.key DBG|2020-06-11 16:18:02|HAL_TLS_mbedtls.c|HAL_TLS_Connect(212): Setting up the SSL/TLS structure... DBG|2020-06-11 16:18:02|HAL_TLS_mbedtls.c|HAL_TLS_Connect(256): Performing the SSL/TLS handshake... DBG|2020-06-11 16:18:02|HAL_TLS_mbedtls.c|HAL_TLS_Connect(257): Connecting to /10.1.8.142/8883... INF|2020-06-11 16:18:02|HAL_TLS_mbedtls.c|_dtls_debug(199): [mbedTLS]:[/home/xx/work/qcloud-iot-sdk-embedded-c/external_libs/mbedtls/library/ssl_tls.c]:[4454]: x509_verify_cert() returned 4 (-0xfffffffc)

ERR|2020-06-11 16:18:02|HAL_TLS_mbedtls.c|HAL_TLS_Connect(264): mbedtls_ssl_handshake failed returned 0x0004 DBG|2020-06-11 16:18:02|HAL_TLS_mbedtls.c|HAL_TLS_Disconnect(291): handle is NULL ERR|2020-06-11 16:18:02|mqtt_client.c|IOT_MQTT_Construct(108): mqtt connect with id: failed: -1001 INF|2020-06-11 16:18:02|mqtt_client.c|qcloud_iot_mqtt_fini(532): release mqtt client resources ERR|2020-06-11 16:18:02|mqtt_sample.c|main(309): MQTT Construct failed!

spikelin commented 4 years ago
  1. 平台创建的证书设备,公钥应该是crt文件,私钥是key文件
  2. 连接的服务器为什么是10.1.8.142这样一个局域网IP,而不是域名,是否修改了SDK代码?
homent-hutu commented 4 years ago

用的自签名证书,目前在局域网测试发现出现上面的问题,换成证书证书测试正常。