EMQ X 内置对 TLS/DTLS 的支持,包括支持单双向认证、X.509 证书等多种身份认证和 LB Proxy Protocol V1/2 等。你可以为 EMQ X 支持的所有协议启用 TLS/DTLS,也可以将 EMQ X 提供的 HTTP API 配置为使用 TLS。本文以自签证书的方式介绍如何在 EMQ X 中为 MQTT 启用 TLS。
查看证书
查看证书
创建 Root CA 自签名证书的步骤与前文一致,不再赘述。
与前文类似,只不过需要将 Root CA 的信息替换成 Second CA 的。最后我们将得到以下文件:
Note: Client 既可以使用 root-cacert.pem 与 second-cacert.pem 合并后的 cacert.pem ,也可以使用 second-cacert.pem 。
假设你已经成功安装了 EMQ X,我们将之前生成的证书一并拷贝到 emqx/etc/certs 目录下:
然后修改 emqx.conf 配置如下:
启动 EMQ X 并将日志等级改为 Debug。
使用 openssl s_client 连接 EMQ X 并发送一个 Client ID 为 "a" 的 MQTT Connect 报文。
如果你在 emqx/log/erlang.log.1 中看到以下日志,说明 SSL 认证成功。
EMQ X 继续保持运行,编译并启动 emqtt 。
连接建立成功,可以正常订阅发布,SSL 单向认证测试通过。
EMQ X 继续保持运行,启动 mqtt.fx,参照下图完成配置:
**Note: **这里只能使用 second-cacert.pem 作为 CA Certificate。
点击 Connect 按钮,连接成功,并且可以正常订阅发布,SSL 双向认证通过。
修改 emqx.conf 配置如下:
启动 EMQ X 并将日志等级改为 Debug。
使用 openssl s_client 连接 EMQ X 并发送一个 Client ID 为 "a" 的 MQTT Connect 报文。
如果你在 emqx/log/erlang.log.1 中看到以下日志,说明 SSL 双向认证成功。
EMQ X 继续保持运行,启动 emqtt 。
连接建立成功,可以正常订阅发布,SSL 双向认证测试通过。
EMQ X 继续保持运行,启动 mqtt.fx,参照下图完成配置:
Note: CA File 可以使用 root-cacert.pem 与 second-cacert.pem 合并后的 cacert.pem ,也可以使用 second-cacert.pem 。
点击 Connect 按钮,连接成功,并且可以正常订阅发布,SSL 双向认证通过。
本文使用emqx搭建mqtt: 官方地址传送门
1.查看openssl版本
一般情况,centos7版本为1.0.2,mqtt的框架emqx必须大于1.0.2,所以如果低于该版本请升级: centos升级openssl教程传送门
2.安装
3.查看防火墙
如果当前服务器打开了防火墙,需要将防火墙相应端口进行配置。
4.进入etc/emqx目录
5.修改配置文件emqx.conf
修改配置文件内容。
6.打开配置网页
登录网页端后台: http://xx.xx.xx.xx:18083/
7.配置网页打开插件emqx_auth_mnesia
网页端->插件->emqx_auth_mnesia->启动
8.配置mqtt用户名和密码
修改文件内容:
9.配置acl主题权限
修改文件内容:
10.重新加载acl配置文件
11.重新启动emqx
在访问后台界面时,应该先开放Emqx对应的端口。如下:
在虚拟机安装的Linux 则使用该方式放开端口:
访问后台地址: http://localhost:18083 ,其中localhost可以替换为你的云服务器公网IP或者虚拟机IP。登录账号:admin,密码:public。进入Web管理控制台。如下图所示:
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)