esp8266与mosquitto的mqtt的ssl通讯实现(一)

将esp8266与mosquitto进行mqtt的ssl加密通讯过程之艰辛,资料程序都没有完整的,问题也很多,好在有CSDN,GitHub,Google等等,大家技术分享和技术问答,所以打算将过程写出来,中间很多问题解决了中间过程没有记下来,以后会经常写博客贴出来,一些源代码也会放到Github上大家参考。

具有参考价值代码,博客也会贴出来,一点点更新吧。

目前基本实现了 设备端-服务器-客户端 的mqtt-ssl通讯,以下几个部分,后面功能继续开发,先把完成的部分记下来,有些问题都快忘了,

有什么问题大家留言。

(1)mosquitto在aws上安装,涉及安装,配置,运行,以及在AWS运行上问题;

(2)采用插件实现了用户登录和用户权限控制,涉及插件配置,编译,安装问题,在MySQL中控制,这个插件密码哈希算法,写了个java版;

(3)java客户端与服务器连接mqtt-ssl方式,涉及ssl配置,库的选用问题;

(4)esp8266与mosquitto进行mqtt-ssl方式通讯,涉及CA制作,证书在不同端格式问题,证书安装使用,代码烧录,代码修改,问题和注意点很多。


先把具有参考价值的连接贴出来,后面再一点点整理


mosquitto的认证授权插件

https://github.com/jpmens/mosquitto-auth-plug


在以上,mosquitto-auth-plug 插件的密码哈希算法没找到java版的,费了好久写了个,包括生成和验证,

目前没有星,大家觉得有用可以给星鼓励鼓励,大家鼓励才是我分享的动力,star,star... 

https://github.com/zhyufeng/PBKDF2HmacSHA1


esp8266的mqtt的客户端程序来自GitHub如下,

https://github.com/tuanpmt/esp_mqtt

实现mqtt功能直接可以使用,ssl双向验证要添加一些代码,证书制作等等问题很多,后面我会写出来。

搭建参考,

ESP8266的MQTT客户端搭建教程

http://blog.csdn.net/yannanxiu/article/details/53088534



参考了一下博客,

Mosquito使用SSL/TLS进行安全通信时的使用方法

http://blog.csdn.net/houjixin/article/details/24305613

这个实现了单向认证,双向认证需要修改代码,

CA证书制作由于要和esp8266通讯需要参考esp8266的ssl通讯



mosquitto的ssl通讯配置参考

https://mosquitto.org/man/mosquitto-tls-7.html



先写这么多,后面陆续更新

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: ESP8266是一种低成本的Wi-Fi模块,可用于物联网项目的开发。腾讯云提供了MQTT协议的支持,使得ESP8266可以轻松地与腾讯云进行通信。 首先,我们需要在ESP8266上安装MQTT库,例如PubSubClient库。然后,我们需要在腾讯云平台上创建一个MQTT实例,并获取到相应的身份凭证,例如密钥、秘钥和主题等信息。 接下来,在ESP8266代码中,我们需要配置连接到腾讯云的Wi-Fi网络参数,并设置MQTT连接的服务器地址和端口。然后,我们可以使用PubSubClient库提供的API来连接到腾讯云的MQTT实例,并订阅相关主题。一旦连接成功并订阅了主题,我们就可以接收腾讯云发送过来的消息,并进行相应的处理。 此外,我们也可以使用PubSubClient库提供的API来发布消息到腾讯云。通过调用相关函数,我们可以将数据发送到指定主题,并发送给腾讯云平台。通过这种方式,我们可以实现ESP8266向腾讯云发送数据的功能。 总的来说,ESP8266和腾讯云MQTT的结合可以实现物联网项目中的数据通信和控制功能。它提供了一种简单、灵活和低成本的解决方案,适用于各种物联网应用场景,如环境监测、智能家居、工业自动化等。使用ESP8266和腾讯云MQTT,我们可以轻松地在物联网项目中实现数据传输和远程控制,为用户带来更好的智能体验。 ### 回答2: ESP8266是一款非常流行的物联网芯片,它具有低功耗、低成本和高性能的特点。而腾讯云则是一家领先的云计算服务提供商,提供了丰富的云服务和解决方案。在物联网应用中,ESP8266可以通过MQTT协议与腾讯云进行通信。 MQTT是一种基于发布/订阅模式的消息传输协议,其设计简单、轻量级且易于实现。腾讯云提供了MQTT消息队列服务(MQ),是一种高性能、高可靠性的消息传递服务,适用于物联网等实时数据传输场景。 使用ESP8266连接腾讯云MQTT,可以实现设备与云端的双向通信。首先,需要在腾讯云上创建一个MQTT实例,并获取该实例的连接信息,包括端口号、用户名、密码等。 然后,在ESP8266上安装支持MQTT协议的库,如PubSubClient库。利用该库,可以在ESP8266上编写代码,实现与腾讯云MQTT的连接和数据传输。 在代码中,首先需要设置连接信息,包括腾讯云MQTT实例的地址、端口号、用户名和密码。然后,通过调用相应的库函数,连接到腾讯云MQTT实例。 连接成功后,就可以订阅和发布消息了。订阅消息时,需要指定要订阅的主题,以便从腾讯云接收相关消息。发布消息时,需要指定消息的主题和内容,以便将消息发送到腾讯云。 通过这种方式,ESP8266可以与腾讯云实现实时的双向通信。例如,可以将传感器数据发送到腾讯云,然后在云端进行处理和存储。同时,也可以从腾讯云接收指令,然后控制设备的行为。 总之,ESP8266和腾讯云MQTT的结合,为物联网应用提供了一种简单、可靠的通信方式,可以实现设备与云端的高效交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值