繁体   English   中英

配置 MQTT 代理(Mosquitto)以使用 SSL 加密不起作用

[英]Configuring MQTT broker(Mosquitto) to use SSL Encryption isn't working

我正在尝试配置我的 MQTT 代理(mosquito)以通过 SSL 连接 MQTT 客户端。为此我创建了 ca.crt、server.crt 和 server.key。

然后我像这样编辑蚊子配置文件:

listener 8883
certfile /etc/mosquitto/ca_certificates/server.crt
cafile /etc/mosquitto/ca_certificates/ca.crt
keyfile /etc/mosquitto/ca_certificates/server.key
require_certificate false
use_identity_as_username true

创建这些证书时,我已确保按照本指南中的建议将通用名称添加到 127.0.0.1

之后,我使用我创建的配置文件运行我的 mosquito 代理:

mosquitto -c /etc/mosquitto/conf.d/password.conf

此命令启动我的 MQTT 代理,它开始侦听端口 8883。

1645181786: mosquitto version 2.0.11 starting
1645181786: Config loaded from /etc/mosquitto/conf.d/password.conf.
1645181786: Opening ipv4 listen socket on port 8883.
1645181786: Opening ipv6 listen socket on port 8883.
1645181786: mosquitto version 2.0.11 running

直到这里,我相信现在我的经纪人只允许在连接调用中提供 ca.crt 时在端口 8883 上进行连接。

因此,然后我使用此 pub 命令向测试主题发送消息。

mosquitto_pub -h 127.0.0.1 -p 8883 --cafile /etc/mosquitto/ca_certificates/ca.crt -t test -m 45

但它会导致以下错误:

1645182944: New connection from 127.0.0.1:58926 on port 8883.
1645182944: Client auto-7B1E49DA-54C1-532B-3948-35FFD3A11250 disconnected, not authorised.

然后我添加了一个密码文件,并在我的 mosquitto 配置文件中添加了该密码文件的路径。 我的新配置文件开始看起来像这样:

listener 8883
password_file /etc/mosquitto/conf.d/passwords
certfile /etc/mosquitto/ca_certificates/server.crt
cafile /etc/mosquitto/ca_certificates/ca.crt
keyfile /etc/mosquitto/ca_certificates/server.key
require_certificate false
use_identity_as_username true

在此更新之后,当我使用我的证书和用户名、密码运行 mosquitto_pub 命令时。 客户端成功连接到代理。

mosquitto_pub -h 127.0.0.1 -p 8883 --cafile /etc/mosquitto/ca_certificates/ca.crt -t test -m 45 -u "user" -P "pass123"

注意:如果我只使用证书或密码运行 pub 命令,它不会连接,也不应该连接。 只给这两个属性工作。

但我想要的是仅使用 SSL 证书进行连接。 任何帮助将非常感激。

问题可能是use_identity_as_username true告诉 mosquitto 使用客户端证书的 CN 作为用户名。

但是在您显示的任何示例中,您都没有发送客户端证书( --cafile选项正在传递 CA 证书以验证代理证书),因此从配置中删除该行并查看它是否有效。

编辑:

如果您也不想提供用户名/密码(或使用客户端证书来识别用户),则需要包含allow_anonymous true配置选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM