首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >31-STM32+W5500+AIR202/302基本控制篇-功能优化-W5500移植mbedtls库以SSL方式连接MQTT服务器(单向忽略认证)

31-STM32+W5500+AIR202/302基本控制篇-功能优化-W5500移植mbedtls库以SSL方式连接MQTT服务器(单向忽略认证)

作者头像
杨奉武
发布于 2020-10-27 03:04:00
发布于 2020-10-27 03:04:00
1.4K0
举报
文章被收录于专栏:知识分享知识分享

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/STM32W5500AIR202A/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

说明

在网络通信中,如果不加上SSL,那么信息就以明文的方式暴露在网络通信中

这节移植mbedtls库,让W5500以SSL方式连接MQTT服务器.

测试

1.打开本节代码

2.默认连接本人的服务器测试(服务器端口为8883)

3.下载到单片机(接上网线)

4.观察日志打印口,确定连接了服务器

5.打开MQTT调试助手和开发板通信(注意修改主题)

程序说明

本想用网络监控助手监控下,但是因为W5500通信不涉及到电脑

所以我不知道如何用电脑上面的 Wireshark 软件监控监控数据!!!

但是呢此程序我使用了WiFi模块测试了,确实加密了!

1.软件选择的C99模式(否则编译报错)

2.先说几个自己需要实现的函数(时间函数)

3.随机数函数

4.网络接收处理函数

SSL的底层获取数据的方式是指明需要多少个数据,然后咱再返回多少个数据.

所以我把数据存储到了环形队列,SSL要多少我就给多少.

5.网络发送函数

6. SSL初始化

7.等待SSL握手完成(商议好最终通信的对称加密方式和秘钥)

其实最底层还是TCP,只不过是经过SSL对通信做了验证,对数据进行了加密.

所以首先还是需要TCP连接,然后再进行SSL.

8.以后接收数据使用的是 mbedtls_ssl_read

9.以后发送数据调用的是 mbedtls_ssl_write

结语

1.忘了说一件事情,调整了堆区大小

mbedtls库占用的内存有点高哈!这可不行!后面的时间我看看怎么做优化

2.为了节省内存开销,我设置了套件是下面这个,请根据自己的服务器修改

3.其实整体上看,最终SSL就相当于把数据做了一次中转.

当然还有做验证,这一节没有写证书验证部分,是因为内存吃力!!!

后面的日子里我好好研究下源码,看看怎么省内存.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
STM32+ESP8266+AIR202/302基本控制篇-47-功能测试-STM32+Air302(NB-IOT)+Mdebtls使用SSL单向认证方式连接MQTT服务器(不校验服务器证书)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2021/03/04
7960
STM32+ESP8266+AIR202/302基本控制篇-47-功能测试-STM32+Air302(NB-IOT)+Mdebtls使用SSL单向认证方式连接MQTT服务器(不校验服务器证书)
14-STM32+BC26丨260Y基本控制篇(自建物联网平台)-STM32+BC260Y+Mbedtls以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
当然协商什么的mbedtls库自己就完成了, 然后咱调用其接口发送和接收数据就可以了;
杨奉武
2022/04/29
8630
14-STM32+BC26丨260Y基本控制篇(自建物联网平台)-STM32+BC260Y+Mbedtls以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
101-STM32+BC26基本控制篇-加密通信-MQTT服务器配置SSL单向认证(.Windows系统)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLBC26AA/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/12/18
9650
101-STM32+BC26基本控制篇-加密通信-MQTT服务器配置SSL单向认证(.Windows系统)
101-STM32+BC26基本控制篇-加密通信-MQTT服务器配置SSL单向认证(Linux系统)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLBC26AA/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/12/18
1.1K0
101-STM32+BC26基本控制篇-加密通信-MQTT服务器配置SSL单向认证(Linux系统)
14-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-移植mbedtls实现STM32+CH395Q以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/CH395Q/my.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2021/07/20
1K0
14-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-移植mbedtls实现STM32+CH395Q以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
90-STM32+ESP8266+AIR202基本控制篇-功能扩展-网页js实现MQTT通信
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/08/20
6480
90-STM32+ESP8266+AIR202基本控制篇-功能扩展-网页js实现MQTT通信
102-STM32+BC26基本控制篇-加密通信-Android和单片机程序以SSL单向认证方式连接MQTT服务器(不验证或验证服务器证书)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLBC26AA/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/12/18
1K0
102-STM32+BC26基本控制篇-加密通信-Android和单片机程序以SSL单向认证方式连接MQTT服务器(不验证或验证服务器证书)
12-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-Android以SSL单向认证方式连接MQTT服务器(不验证服务器证书) 前面章节已经配置好了
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/CH395Q/my.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2021/07/19
5560
12-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-Android以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
    





        前面章节已经配置好了
30-STM32+ESP8266+AIR202基本控制篇-功能优化-MQTT服务器配置SSL单向认证(.Windows系统)
说明 如果设备连接MQTT只走TCP,信息可以用软件监控出来. 为了防止传输的信息被监控,TCP + SSL 使用自带的证书文件(开启单向认证) 1.软件里面自带着证书 <ignore_js_op>
杨奉武
2020/07/01
6400
30-STM32+ESP8266+AIR202基本控制篇-功能优化-MQTT服务器配置SSL单向认证(.Windows系统)
315-STM32+BC26丨260Y基本控制篇(自建物联网平台)-加密通信测试-STM32+BC260Y+Mbedtls以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
这节说明一下STM32+BC260Y+Mdebtls以SSL单向认证(不校验服务器证书)方式连接MQTT服务器.
杨奉武
2021/04/02
1.3K0
315-STM32+BC26丨260Y基本控制篇(自建物联网平台)-加密通信测试-STM32+BC260Y+Mbedtls以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
04-STM32+W5500+AIR202远程升级方案-功能1-STM32+W5500实现利用http远程更新STM32程序(定时访问升级,备份升级)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/STM32W5500AIR202B/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/08/20
1.9K0
103-STM32+BC26基本控制篇-加密通信-Android和单片机程序以SSL单向认证方式连接MQTT服务器(验证服务器证书)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLBC26AA/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/12/25
6380
30-STM32+ESP8266+AIR202基本控制篇-功能优化-MQTT服务器配置SSL单向认证(Linux系统)
说明 如果设备连接MQTT只走TCP,信息可以用软件监控出来. 为了防止传输的信息被监控,TCP + SSL 使用自带的证书文件(开启单向认证) 1.软件里面自带着证书 <ignore_js_op>
杨奉武
2020/07/01
7080
30-STM32+ESP8266+AIR202基本控制篇-功能优化-MQTT服务器配置SSL单向认证(Linux系统)
STM32+ESP8266+AIR202基本控制篇-311-功能测试-Android以SSL单向认证方式连接MQTT服务器(不校验服务器证书)
2.设置好以后程序会在TCP的基础上执行SSL数据交互,不校验服务器证书,直接返回true
杨奉武
2022/04/29
7890
STM32+ESP8266+AIR202基本控制篇-311-功能测试-Android以SSL单向认证方式连接MQTT服务器(不校验服务器证书)
21-STM32+ESP8266+AIR202/302远程升级方案-扩展应用-移植远程升级包实现STM32F407VET6+串口网络模组(ESP8266/Air202/Air302)使用http或者h
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_B/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2021/03/09
5540
04-STM32+W5500+AIR202基本控制篇-功能2-Android和微信小程序使用MulticastBind绑定W5500,并通过MQTT实现485,422通信和继电器控制(微信小程序)
这节的功能是使用微信小程序绑定W5500,然后和W5500实现MQTT远程通信控制
杨奉武
2020/07/23
1.1K0
04-STM32+W5500+AIR202基本控制篇-功能2-Android和微信小程序使用MulticastBind绑定W5500,并通过MQTT实现485,422通信和继电器控制(微信小程序)
13-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-Android以SSL单向认证方式连接MQTT服务器(验证服务器证书) 1.把mqtt服务器上
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/CH395Q/my.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2021/07/19
5860
13-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-Android以SSL单向认证方式连接MQTT服务器(验证服务器证书)
    





        1.把mqtt服务器上
003-STM32+ESP8266+AIR202/302基本控制篇-功能1-APP使用SmartConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/10/28
9260
003-STM32+ESP8266+AIR202/302基本控制篇-功能1-APP使用SmartConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制
91-STM32+ESP8266+AIR202/302基本控制篇--功能扩展-关于网络上mqtt.js 和 mqtt.min.js 微信小程序包的使用
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2020/10/29
2.3K0
91-STM32+ESP8266+AIR202/302基本控制篇--功能扩展-关于网络上mqtt.js 和 mqtt.min.js 微信小程序包的使用
2-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-移植单片机MQTT包,编写stm32+CH395Q连接MQTT服务器程序 这节说明一下详细的编写
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/CH395Q/my.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
杨奉武
2021/07/19
8501
2-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-移植单片机MQTT包,编写stm32+CH395Q连接MQTT服务器程序
    





        这节说明一下详细的编写
推荐阅读
STM32+ESP8266+AIR202/302基本控制篇-47-功能测试-STM32+Air302(NB-IOT)+Mdebtls使用SSL单向认证方式连接MQTT服务器(不校验服务器证书)
7960
14-STM32+BC26丨260Y基本控制篇(自建物联网平台)-STM32+BC260Y+Mbedtls以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
8630
101-STM32+BC26基本控制篇-加密通信-MQTT服务器配置SSL单向认证(.Windows系统)
9650
101-STM32+BC26基本控制篇-加密通信-MQTT服务器配置SSL单向认证(Linux系统)
1.1K0
14-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-移植mbedtls实现STM32+CH395Q以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
1K0
90-STM32+ESP8266+AIR202基本控制篇-功能扩展-网页js实现MQTT通信
6480
102-STM32+BC26基本控制篇-加密通信-Android和单片机程序以SSL单向认证方式连接MQTT服务器(不验证或验证服务器证书)
1K0
12-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-Android以SSL单向认证方式连接MQTT服务器(不验证服务器证书) 前面章节已经配置好了
5560
30-STM32+ESP8266+AIR202基本控制篇-功能优化-MQTT服务器配置SSL单向认证(.Windows系统)
6400
315-STM32+BC26丨260Y基本控制篇(自建物联网平台)-加密通信测试-STM32+BC260Y+Mbedtls以SSL单向认证方式连接MQTT服务器(不验证服务器证书)
1.3K0
04-STM32+W5500+AIR202远程升级方案-功能1-STM32+W5500实现利用http远程更新STM32程序(定时访问升级,备份升级)
1.9K0
103-STM32+BC26基本控制篇-加密通信-Android和单片机程序以SSL单向认证方式连接MQTT服务器(验证服务器证书)
6380
30-STM32+ESP8266+AIR202基本控制篇-功能优化-MQTT服务器配置SSL单向认证(Linux系统)
7080
STM32+ESP8266+AIR202基本控制篇-311-功能测试-Android以SSL单向认证方式连接MQTT服务器(不校验服务器证书)
7890
21-STM32+ESP8266+AIR202/302远程升级方案-扩展应用-移植远程升级包实现STM32F407VET6+串口网络模组(ESP8266/Air202/Air302)使用http或者h
5540
04-STM32+W5500+AIR202基本控制篇-功能2-Android和微信小程序使用MulticastBind绑定W5500,并通过MQTT实现485,422通信和继电器控制(微信小程序)
1.1K0
13-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-Android以SSL单向认证方式连接MQTT服务器(验证服务器证书) 1.把mqtt服务器上
5860
003-STM32+ESP8266+AIR202/302基本控制篇-功能1-APP使用SmartConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制
9260
91-STM32+ESP8266+AIR202/302基本控制篇--功能扩展-关于网络上mqtt.js 和 mqtt.min.js 微信小程序包的使用
2.3K0
2-STM32+CH395Q(以太网)基本控制篇(自建物联网平台)-移植单片机MQTT包,编写stm32+CH395Q连接MQTT服务器程序 这节说明一下详细的编写
8501
相关推荐
STM32+ESP8266+AIR202/302基本控制篇-47-功能测试-STM32+Air302(NB-IOT)+Mdebtls使用SSL单向认证方式连接MQTT服务器(不校验服务器证书)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档