emqx用自签证书开启SSL实现双向认证

1、OpenSSL相关配置

emqx的搭建可以查看另一篇文章

1.1.下载openssl:

openssl安装包下载地址
在这里插入图片描述

有4种安装包:
Win64 OpenSSL v3.3.2 Light,安装Win64 OpenSSL v3.3.2最常用的软件包
Win64 OpenSSL v3.3.2,安装Win64 OpenSSL v3.3.2完整软件包(一般安装此版本)
Win32 OpenSSL v3.3.2Light,安装Win32 OpenSSL v3.3.2最常用的软件包
Win32 OpenSSL v3.3.2,安装Win32 OpenSSL v3.3.2完整软件包

在这里插入图片描述

1.2.安装openssl

路径自行选择
在这里插入图片描述
最后一步,是否捐款,去掉所有勾选即可,如下:
在这里插入图片描述

1.3.配置环境变量

在系统变量里面的path中添加OpenSSL的bin路径
在这里插入图片描述
查看openssl安装版本

openssl version

在这里插入图片描述

1.4.配置SSL双向认证

1.4.1.生成根证书私钥

openssl genrsa -out ca.key 2048

1.4.2.生成根证书

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

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

1.4.3.生成服务端证书私钥

openssl genrsa -out emqx.key 2048

1.4.4.生成服务端证书请求

在bin录下手动创建一个openssl.cnf的文件,仅需设置IP地址,其中将IP.1和DNS.1修改为服务器地址。这里配置的国家省份城市要和上面配置的一致

[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 = 替换为自己的mqtt服务器地址
DNS.1 = 替换为自己的mqtt服务器地址

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

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

1.4.6.生成服务端证书

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

1.4.7.生成客户端证书私钥

openssl genrsa -out client.key 2048

1.4.8.生成客户端证书请求

这里配置的国家省份城市及用户名要和上面配置的一致

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

1.4.9.生成客户端证书

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

生成成功标志

2.EMQX相关配置

2.1.拷贝文件

将前文中通过 OpenSSL 工具生成的 emqx.pem、emqx.key 及 ca.pem 文件拷贝到 EMQX 的 etc/emqx/certs/ 目录下
在这里插入图片描述

2.2.修改文件的用户及用户组

进到相关目录

cd etc/emqx/certs/

修改文件用户及用户组

sudo chown emqx:emqx ca.pem
sudo chown emqx:emqx emqx.key
sudo chown emqx:emqx emqx.pem

2.3.配置EMQX开启SSL

修改监听器

在这里插入图片描述

配置ssl
在这里插入图片描述
点击default,配置路径
在这里插入图片描述

3.测试证书验证方式

3.1.打开MQTTX测试工具

注意证书认证方式的端口是8883

选择mqtts连接方式
输入emqx服务器地址
证书验证方式选择 CA or Self signed certificates
选择之前生成好的证书,对应存放
在这里插入图片描述

3.2.测试连接(证书方式+用户方式)

如果只想使用证书认证,不想使用用户密码认证的话需要关闭对应的
如果你的客户端认证及授权都是用的myqsl方式的话,则选择证书后还需要填写用户名密码
在这里插入图片描述在这里插入图片描述
添加订阅,确认消息是否到达
在这里插入图片描述

3.2.测试连接(只使用证书方式)

需要关闭客户端的认证方式
在这里插入图片描述
关闭客户端授权认证方式
在这里插入图片描述
客户端授权中的未匹配时执行必须是allow,不然会出现未授权
在这里插入图片描述
测试连接
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值