EMQTT与luat结合使用

1 篇文章 0 订阅
1 篇文章 0 订阅

1、生成ca的key和证书

openssl genrsa -out MyRootCA.key 2048

openssl req -x509 -new -nodes -key MyRootCA.key -sha256 -days 3650 -out MyRootCA.pem

2、生成服务器所需key和证书

openssl genrsa -out MyEMQ1.key 2048

openssl req -new -key ./MyEMQ1.key -out MyEMQ1.csr

openssl x509 -req -in ./MyEMQ1.csr -CA MyRootCA.pem -CAkey MyRootCA.key -CAcreateserial -out MyEMQ1.pem -days 3650 -sha256

3、在emqtt的配置文件,我的debian 是在/etc/emqttd/emq.conf,其他系统自行查找

vim中查找:/listener.ssl.external.keyfile,设置如下


#private key for emq cert:
listener.ssl.external.keyfile = etc/certs/MyEMQ1.key
#emq cert:
listener.ssl.external.certfile = etc/certs/MyEMQ1.pem
#CA cert:
listener.ssl.external.cacertfile = etc/certs/MyRootCA.pem

4、将MyRootCA.pem复制到模块demo的mqtt文件夹下

   修改mqttTask.lua

task方法内添加,这里是为了防止模块时间不在证书有效期内,这里的时间只是为了方便修改,真实环境请以ntp时间为准,观察证书有效期。
misc.setClock({year=2019,month=2,day=14,hour=14,min=2,sec=58})
sys.wait(2000)
local tm = misc.getClock()
log.info("testNtp.printTime",tm.year,tm.month,tm.day,tm.hour,tm.min,tm.sec)
修改connect
if  mqttClient:connect("0.tcp.ngrok.io",15514,"tcp_ssl",{caCert="MyRootCA.crt"})then

至此即可进行emqtt的ssl连接

补充,luat需要证书为crt格式,而刚才生成代码的证书是pem,两者都是base64加密,内容无区别,故后缀名直接更改为crt即可,服务器端无需更改


参考链接

https://medium.com/@emqtt/securing-emq-connections-with-ssl-432672ab9f06

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值