【发布时间】:2019-01-04 17:14:33
【问题描述】:
mqtt 握手成功后 CONNECTACK 失败,使用带有 mbed TLS 的 ECC x509
我正在尝试使用 STM32 板连接到 IoT Hub。 我有一个使用 Linux 的模拟项目,该项目具有完全相同的 CA 签名的受信任和设备证书,以确保问题不在证书或服务器配置上。 Linux 设备连接良好(它使用 OpenSSL 作为芯片)
但对于我的嵌入式设备 STM32,我使用的是 mbedTLS 堆栈。
启用跟踪后,我看到发生了 15 个握手步骤,然后出现以下错误:
IoTHub Connection Status = IOTHUB_CLIENT_CONNECTION_UNAUTHENTICATED, Reason = IOTHUB_CLIENT_CONNECTION_DEVICE_DISABLED
ERROR: mqtt_operation_complete_callback L#1616
Connection Not Accepted: 0x5: Not Authorized
原因对我来说看起来很可疑,但服务器端,设备已启用并查看源代码,唯一的响应是服务器拒绝连接。
因为我排除了证书、服务器设置和传输,我假设我的问题出在 Chipper 上。
Q1) 知道需要什么特定曲线吗?
//#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
//#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
//#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
//#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
//#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
#define MBEDTLS_ECP_DP_BP256R1_ENABLED
#define MBEDTLS_ECP_DP_BP384R1_ENABLED
//#define MBEDTLS_ECP_DP_BP512R1_ENABLED
//#define MBEDTLS_ECP_DP_CURVE25519_ENABLED
Q2) 我可以启用哪些跟踪来了解服务器拒绝证书的原因。
【问题讨论】:
标签: mqtt tls1.2 x509 azure-iot-hub mbed