ESP8266 RTOS SDK 中基于SSL的MQTT通信证书问题

SDK链接:https://github.com/espressif/ESP8266_RTOS_SDK

编译环境主机:Ubuntu server 16.04,根据官方文档把相应环境配置好了。

代码:https://github.com/espressif/ESP8266_RTOS_SDK/tree/master/examples/protocols/esp-mqtt/ssl

 

问题1:mbedtls_ssl_fetch_input() returned -80 (-0050)如下图。

 

问题2:哈希算法不匹配。

SSL连接过程中需要验证证书,证书制作环节中,流程基本上是客户端对文本做哈希,把哈希值在CA侧签名。验证过程中,需要用CA解密,再验证哈希,哈希对了就验证成功。由于算法不匹配,所以哈希一般对不了,证书的校验失败了。

 

解决问题过程中,发现MbedTLS的证书验证过程好像不支持用SHA1的算法做哈希,如果做证书的时候,用SHA1算法做哈希的话,会出问题。而且需要用2048位以上的密钥做证书才行。

我重新做了证书,在网上随便找了一个证书一键制作脚本,看了下做证书的时候,哈希选择的参数不是SHA1,然后按照制作好了新的证书,把服务端和8266的证书都相应的替换成现在的,就好了。

解决了第二个问题以后,第一个问题也没有出现过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值