OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 38|回复: 0

ESP32-S3-IDF5.1.2的TLS加密通信流程分享

[复制链接]

19

主题

122

帖子

0

精华

高级会员

Rank: 4

积分
710
金钱
710
注册时间
2014-8-14
在线时间
224 小时
发表于 昨天 10:01 | 显示全部楼层 |阅读模式
例程没有看到TLS加密通信,自己问了问AI,给出的答案也是千奇百怪,看了下乐鑫的例程,路径为:Espressif\frameworks\esp-idf-v5.1.2\examples\protocols
https的,我比较喜欢自己组包发送请求,这样平台通用性很强,也看了具体内容,具体到如何调用接口的部分,比较模糊了。
也看了mqtt里边的ssl,同样的,底层的接口调用都看不到,在mqtt组件里完成了,我也是比较喜欢paho-mqtt来自己组包协议,自己调用网络接口来发送和接收数据。
--------------------------------------------------------------------------
之所以我喜欢这样,我是想吧硬件平台和软件应用尽可能分离开,这样一旦我换一个硬件,比如使用4G网络,有线网络,这样我的应用层是通用的,我只需要吧网络底层接口做好就可以了。
--------------------------------------------------------------------------
进入主题(核心步骤是6,7,8,9)
1.wifi连接和tcp直连是一样的,照抄例程或者用自己做好的就行。
2.获取你要连接的云平台的认证证书,以阿里物联网为例,可在:首页>物联网平台>操作指南>设备接入>使用协议自主接入>使用MQTT协议自主接入>MQTT-TLS连接通信,下载"阿里云物联网平台自签名证书"。HTTPS的证书在:首页>物联网平台>操作指南>设备接入>使用协议自主接入>使用MQTT协议自主接入>MQTT-WebSocket连接通信(操作步骤>1.准备证书>最后的蓝色字体"根证书")下载。
3.包含头文件,#include "esp_tls.h"
4.证书文件后缀是.crt,只需要把后缀改为.pem即可,然后修改为如下格式,主要是加上双引号和换行符
PixPin_2025-09-28_09-50-33.jpg
5.使用 esp_tls_cfg_t 结构体配置证书,如图
PixPin_2025-09-28_09-48-38.jpg
6.在wifi got ip之后,使用 esp_tls_t *esp_tls_init(void) 接口创建tls句柄。
7.然后使用接口 int esp_tls_conn_new_sync(const char *hostname, int hostlen, int port, const esp_tls_cfg_t *cfg, esp_tls_t *tls) 连接,当前我看了接口参数,只支持域名连接,mqtts端口为8883,后边两个参数就是配置的证书和创建的tls句柄。
8.使用接口 ssize_t esp_tls_conn_write(esp_tls_t *tls, const void  *data, size_t datalen) 发送数据。
9.使用接口 ssize_t esp_tls_conn_read(esp_tls_t *tls, void  *data, size_t datalen) 接收数据。
--------------------------------------------------------------------------
这样就具备了连接,发送,接收的功能了。在此基础上,我使用mqtt协议接入了阿里云,上传数据和下发数据,对用户来说,除了接口不一样,其他都是一样的,基本属于无损替换。
也试了自行组包https,自动创建设备(https只支持预注册,mqtts可以支持到免预注册),这样底层不管是tls还是tcp直连,我的应用层代码只是替换下接口的事情。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-9-29 14:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表