手把手教你在CentOS 7上安装并配置EMQX 4.4.17(含TLS配置)

目录

1、下载安装包并解压

2、赋予安装目录可执行权限

3、创建数据目录和日志目录

4、修改控制台配置文件

5、修改主配置文件

6、修改acl.conf

7、修改emqx_auth_redis.conf

 8、连接到Redis在指定编号数据库,添加客户端用户与ACL规则(实时生效)

 9、EasyRSA包下载并解压到指定位置

10、初始化PKI,提示是否确认时,输入yes并回车

11、生成CA证书,提示输入时无需输入,直接回车

12、生成服务端私钥,提示输入时无需输入,直接回车

13、签发服务端公钥,提示是否确认时,输入yes并回车

 14、生成客户端私钥并签发公钥

15、使用Nginx实现SSL替代EMQX自带的SSL加密端口

16、重启Nginx

17、打开EMQX相关端口的防火墙

18、设置环境变量

19、刷新环境变量

20、创建服务启动脚本

21、启动服务并将启动脚本加入开机自启动

22、查看服务状态

23、在浏览器访问对应服务器的18083端口,登录控制台界面,打开以下插件并重启


1、下载安装包并解压

cd /energy/apps-local/lib 

wget -O emqx-4.4.17-otp24.3.4.2-1-el7-amd64.zip https://www.emqx.com/en/downloads/broker/4.4.17/emqx-4.4.17-otp24.3.4.2-1-el7-amd64.zip 

unzip emqx-4.4.17-otp24.3.4.2-1-el7-amd64.zip

2、赋予安装目录可执行权限

chown -R root:root /energy/apps-local/lib/emqx 

chmod -R 700 /energy/apps-local/lib/emqx

3、创建数据目录和日志目录

将EMQX数据目录与日志目录分别移动到规范位置,并在原位置建立软链接

mv /energy/apps-local/lib/emqx/data /energy/apps-local/data/emqx 

ln -s /energy/apps-local/data/emqx /energy/apps-local/lib/emqx/data 

mv /energy/apps-local/lib/emqx/log /energy/apps-local/logs/emqx 

ln -s /energy/apps-local/logs/emqx /energy/apps-local/lib/emqx/log

4、修改控制台配置文件

/energy/apps-local/lib/emqx/etc/plugins/emqx_dashboard.conf,找到下面列举的配置项并修改为对应值

dashboard.default_user.login = admin

dashboard.default_user.password = energy123456

5、修改主配置文件

/energy/apps-local/lib/emqx/etc/emqx.conf,找到下面列举的配置项并修改为对应值

node.name = 环境名称(dev/test/release/prod)@具体IP值

# 配置默认ACL规则为拒绝
acl_nomatch = deny

# 配置ALC规则更新后断开当前连接
acl_deny_action = disconnect

# 将MQTT协议端口绑定到本地回环地址并打开代理通道开关,使用Nginx代理对外暴露不加密的MQTT协议端口
listener.tcp.external = 127.0.0.1:1883
listener.tcp.external.proxy_protocol = on

# 将WebSocket协议端口绑定到本地回环地址并打开代理通道开关,使用Nginx代理对外暴露不加密的WebSocket协议端口
listener.ws.external = 127.0.0.1:8083
listener.ws.external.proxy_protocol = on

# 注释下列配置以关闭自带的SSL加密端口
## listener.ssl.external = 8883
## listener.wss.external = 8084

6、修改acl.conf

修改/energy/apps-local/lib/emqx/etc/acl.conf以默认拒绝所有连接

# 将{allow, all}.修改为{deny, all}.

7、修改emqx_auth_redis.conf

修改/energy/apps-local/lib/emqx/etc/plugins/emqx_auth_redis.conf以下配置项来使用Redis存储EMQX的用户账号信息与ACL规则

auth.redis.server = # HOST:PORT 

auth.redis.database = # 数据库编号,如无意外,统一用“8” 

# Redis连接账号/密码视具体情况填写

 8、连接到Redis在指定编号数据库,添加客户端用户与ACL规则(实时生效)

 9、EasyRSA包下载并解压到指定位置

EasyRSA包下载地址:https://download.csdn.net/download/sean9169/90311221

cd /energy/apps-local/lib

tar -zxvf ./EasyRSA-3.2.1.tgz

mv ./EasyRSA-3.2.1 ./emqx-easyrsa

rm -rf ./EasyRSA-3.2.1.tgz ./emqx-easyrsa/pki

10、初始化PKI,提示是否确认时,输入yes并回车

cd /energy/apps-local/lib/emqx-easyrsa 

./easyrsa init-pki

11、生成CA证书,提示输入时无需输入,直接回车

cd /energy/apps-local/lib/emqx-easyrsa 

./easyrsa build-ca nopass

12、生成服务端私钥,提示输入时无需输入,直接回车

cd /energy/apps-local/lib/emqx-easyrsa 

./easyrsa gen-req server nopass

13、签发服务端公钥,提示是否确认时,输入yes并回车

cd /energy/apps-local/lib/emqx-easyrsa 

./easyrsa sign-req server server

 14、生成客户端私钥并签发公钥

这里的用户名与客户端连接用户名不是强相关,但是为了方便维护,两者尽可能保持一致

cd /energy/apps-local/lib/emqx-easyrsa 

# 生成客户端私钥,提示输入时无需输入,直接回车 
./easyrsa gen-req 用户名 nopass 

# 签发客户端公钥,提示是否确认时,输入yes并回车 
./easyrsa sign-req client 用户名

15、使用Nginx实现SSL替代EMQX自带的SSL加密端口

为方便拓展EMQX集群,使用Nginx实现SSL替代EMQX自带的SSL加密端口,Nginx安装详见https://blog.csdn.net/sean9169/article/details/145415451,创建/energy/apps-local/lib/nginx/conf/conf.d/stream/emqx.conf,并写入以下内容,直接对相应端口的TCP数据做流转发以替代EMQX自带的MQTTS(8883)协议和WSS(8084)协议端口

server {
    listen 本机物理网卡IP:1883;

    proxy_protocol on;
    proxy_pass 127.0.0.1:1883;
}

server {
    listen 本机物理网卡IP:8083;

    proxy_protocol on;
    proxy_pass 127.0.0.1:8083;
}

server {
    listen 8883 ssl;

    ssl_certificate /energy/apps-local/lib/emqx-easyrsa/pki/issued/server.crt;
    ssl_certificate_key /energy/apps-local/lib/emqx-easyrsa/pki/private/server.key;
    ssl_client_certificate /energy/apps-local/lib/emqx-easyrsa/pki/ca.crt;
    ssl_verify_client on;
    ssl_verify_depth 1;

    proxy_protocol on;
    proxy_pass 127.0.0.1:1883;
}

server {
    listen 8084 ssl;

    ssl_certificate /energy/apps-local/lib/emqx-easyrsa/pki/issued/server.crt;
    ssl_certificate_key /energy/apps-local/lib/emqx-easyrsa/pki/private/server.key;
    ssl_client_certificate /energy/apps-local/lib/emqx-easyrsa/pki/ca.crt;
    ssl_verify_client on;
    ssl_verify_depth 1;

    proxy_protocol on;
    proxy_pass 127.0.0.1:8083;
}

16、重启Nginx

systemctl restart nginx

17、打开EMQX相关端口的防火墙

firewall-cmd --zone=drop --add-port=1883/tcp --permanent 
firewall-cmd --zone=drop --add-port=8883/tcp --permanent 
firewall-cmd --zone=drop --add-port=8083/tcp --permanent 
firewall-cmd --zone=drop --add-port=8084/tcp --permanent 
firewall-cmd --zone=drop --add-port=8081/tcp --permanent 
firewall-cmd --zone=drop --add-port=18083/tcp --permanent 
firewall-cmd --reload

18、设置环境变量

# 将以下代码加入/etc/profile末尾 
# EMQX 
export PATH=/energy/apps-local/lib/emqx/bin:$PATH

19、刷新环境变量

source /etc/profile

20、创建服务启动脚本

创建systemctl脚本/usr/lib/systemd/system/emqx.service并写入以下内容

[Unit]
Description=emqx
After=network.target

[Service]
Type=forking
User=root
PrivateTmp=true
Restart=always
ExecStart=/energy/apps-local/lib/emqx/bin/emqx start
ExecStop=/energy/apps-local/lib/emqx/bin/emqx stop

[Install]
WantedBy=multi-user.target

21、启动服务并将启动脚本加入开机自启动

systemctl enable --now emqx

22、查看服务状态

systemctl status emqx

23、在浏览器访问对应服务器的18083端口,登录控制台界面,打开以下插件并重启

重启emqx 

systemctl restart emqx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

能源革命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值