我正在尝试将azure-iot-sdk-c移植到stm32f767zi板上,并取得了一定的成功。但是,由于该程序正处于尝试与服务器mbedtls进行SSL握手的时刻,因此无法根据服务器证书验证我提供的证书。日志行是:
x509_verify_cert()返回-9984(-0x2700)
翻译成MBEDTLS_ERR_X509_CERT_VERIFY_FAILED错误
我尝试了不同的方式来提供不同的证书(巴尔的摩CyberTrust根目录,Microsoft IT TLS CA 1,使用发送来进行验证的证书),但是所有这些证书均因相同的错误而失败。
我已将故障范围从mbedtls库缩小到mbedtls_rsa_rsassa_pkcs1_v15_verify(),该错误失败并显示以下错误:
MBEDTLS_ERR_RSA_INVALID_PADDING
由于我假设LwIP和mbedtls正常工作,所以我只能相信我提供的证书或我的配置之一是错误的,但是我对mbedtls / ssl的了解不足,无法弄清楚哪种配置/我应该使用的证书。
总的来说,我用来尝试连接(巴尔的摩CyberTrust根目录)的证书是使用的正确证书吗,并且mbedtls中是否有我没有设置的明显设置?