一、Ubuntu22.0安装EMQX5.0——用自签证书开启SSL实现双向认证

折腾了一个礼拜,看了各位大神的博客,但是对于什么也不懂的小白,想要EMQX5.0开启SSL认证成功连接,真是一头雾水,可能存在一部分像我一样比较菜鸡的小白吧。此文是从安装EMQX到配置好SSL并连接测试成功的教程,大神绕过。另外,对Ubuntu一点点也不懂的小白,也请绕过。

一、说明

        本文是建立在Ubuntu22.0系统上。系统安装的是EMQX5.0以上的版本,其他版本请参照论坛其他教程。本文使用的系统已关闭防火墙,如果默认开启防火墙,请记得放行相关端口:22 tcp, 18083 tcp, 8883 tcp等端口。

二、安装EMQX

        EMQX官网:EMQX: 大规模分布式 MQTT 消息服务器

        这里我们选择Ubuntu系统选择APT安装,具体如下:

        APT安装:

        1. 配置 EMQX Apt 源

curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash

        2. 安装 EMQX

sudo apt-get install emqx

        3. 启动 EMQX

sudo systemctl start emqx

        4. 启动激活

emqx start

        当出现如下 截图,说明安装启动正常。

  

三、卸载

        如果安装过程有问题,或者想卸载,再安装指定版本,方法如下:

        1.停止EMQX服务器

sudo systemctl stop emqx

        2. 卸载

sudo apt-get remove emqx

        3. 删除文件夹

sudo rm -rf /etc/emqx
sudo rm -rf /var/lib/emqx

        4. 卸载EMQX 的各项依赖包

sudo apt-get autoremove

四、配置SSL双向认证

        本文只详细解说自签认证,对于购买的域名认证,请自行测试。

        1. 生成根证书私钥

openssl genrsa -out ca.key 2048

        2.生成根证书

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

        中间根据提示填写相关信息,需要输入省份、城市、公司、组织、姓名、邮件,填写内容一般不影响。

        3.生成服务端证书私钥

openssl genrsa -out emqx.key 2048

        4.生成服务端证书请求

        需要手动创建一个openssl.cnf的文件,仅需设置IP地址,放到 /root根目录(与之前生产的密钥在同一个地方),其中IP.1DNS.1修改为服务器地址。可以使用vi编辑器和touch指令完成。建议采用ssh工具,方便导入或者粘贴。

[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 = Jiangsu
localityName = Suzhou
organizationName = EMQX
commonName = CA
[req_ext]
subjectAltName = @alt_names
[v3_req]
subjectAltName = @alt_names
[alt_names]
IP.1 = 1.94.66.xx
DNS.1 = 1.94.66.xx

        文件建立完成后,生成服务端证书请求:

openssl req -new -key ./emqx.key -config openssl.cnf -out emqx.csr

         5.生成服务端证书

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

        6.生成客户端证书私钥

openssl genrsa -out client.key 2048

        7.生成客户端证书请求

openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=Jiangsu/L=Suzhou/O=EMQX/CN=client"

        8.生成客户端证书

openssl x509 -req -days 3650 -in client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client.pem

        9.将/root文件夹下生产ca.key、ca.pem、client.key、client.pem、emqx.key、emqx.pem六个文件复制到etc/emqx/certs文件夹,然后再下载到本地计算机上备用。

至此,自签证书创建完毕。

        10.配置EMQX开启SSL

        本文采用EMQX Dashboard配置SSL,其他方式请自行尝试。系统安装的为MQTT5.0版本。

        进入EMQX Dashboard,例如:http://1.94.66.XX:18083/,输入用户admin,密码xxxxx(初始密码为public).

        进入监听器选项

点击ssldefault,配置TLS CertTLS keyCA Cert文件路径,如下:

也可以将下载的emqx.pem、emqx.key、ca.pem文件用文本编辑器打开依次复制粘贴到TLS CertTLS keyCA Cert配置。(其他方法本文不再赘述,各位自行测试。)

        11.客户端测试

        打开客户端,设置如下配置,注意红框的地方,最后依次导入下载好的三个文件:ca.pemclient.pemclient.key

        点击连接,测试连接成功。

至此,EMQX5.0配置SSL完毕,测试正常。本文参照了部分资料,如有侵权,请联系本人,谢谢。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值