emqx-安装

emqx-安装

概述

EMQX 是一款开源 (opens new window)的大规模分布式 MQTT 消息服务器,功能丰富,专为物联网和实时通信应用而设计。EMQX 5.0 单集群支持 MQTT 并发连接数高达 1 亿条,单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息,并保证延迟在亚毫秒级。

环境

centos7.9 emqx4.13

官方文档

https://www.emqx.io/docs/zh/v4.3/

安装

1
2
3
4
5
6
7
8
9
10
## 下载仓库
curl -s https://assets.emqx.com/scripts/install-emqx-rpm.sh | sudo bash

## 安装指定版本
yum list emqx --showduplicates
yum install -y emqx-4.3.15

## 开启启动和启动
systemctl enable emqx
systemctl restart emqx

控制台和默认端口

1
2
3
http://10.77.114.178:18083/  admin/public
mqtt:1883
mqtts:8883

ssl证书生成脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/sh
cat << EOF > openssl.cnf
[req]default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
countryName = CN
stateOrProvinceName = Zhejiang
localityName = Hangzhou
organizationName = EMQX
commonName = CA
[req_ext]
subjectAltName = @alt_names
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.abc.cn
IP.2 = 120.224.237.21
DNS.2 = 120.224.237.21
IP.3 = 10.77.114.158
DNS.3 = 10.77.114.158
IP.4 = 10.77.114.178
DNS.4 = 10.77.114.178

EOF

openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.pem
openssl genrsa -out emqx.key 2048
openssl req -new -key ./emqx.key -config openssl.cnf -out emqx.csr
openssl x509 -req -in ./emqx.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out emqx.pem -days 3650 -sha256 -extensions v3_req -extfile openssl.cnf
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=EMQX/CN=client"
openssl x509 -req -days 3650 -in client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client.pem

mv ca.pem cacert.pem
mv emqx.pem cert.pem
mv emqx.key key.pem

证书配置

1
2
3
4
5
6
7
8
9
10
11
## 将生成的证书替换掉/etc/emqx下的同名证书
listener.ssl.external.keyfile = /etc/emqx/certs/key.pem
listener.ssl.external.certfile = /etc/emqx/certs/cert.pem

## 重启emqx
systemctl restart emqx

## 客户端配置3个证书即可链接
cacert.pem
client.pem
client.key