将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双向验证要添加一些代码,证书制作等等问题很多,后面我会写出来。
搭建参考,
http://blog.csdn.net/yannanxiu/article/details/53088534
参考了一下博客,
http://blog.csdn.net/houjixin/article/details/24305613
这个实现了单向认证,双向认证需要修改代码,
CA证书制作由于要和esp8266通讯需要参考esp8266的ssl通讯
mosquitto的ssl通讯配置参考
https://mosquitto.org/man/mosquitto-tls-7.html
先写这么多,后面陆续更新