You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mosquitto访问控制列表(ACL)失效问题求助

问题分析与解决

核心原因

你配置了use_identity_as_username true,这意味着Mosquitto会使用客户端SSL证书中的CN(通用名称)作为用户名,而非密码文件里的“test”。而你的ACL文件只授权了用户“test”,两者不匹配,导致客户端被拒绝访问主题,收不到消息。

解决步骤

1. 确认客户端证书的CN字段

查看你的客户端证书,确认其CN(通用名称)是什么。可以用openssl命令查看:

openssl x509 -in client.crt -text -noout | findstr "Subject:"

输出里的CN=后面的值就是Mosquitto实际使用的用户名。

2. 调整ACL文件

  • 如果证书CN是“test”,检查ACL文件格式是否正确(确保user test和topic #是单独两行,无多余空格);
  • 如果证书CN不是“test”,把ACL里的user test改成证书的CN值,比如证书CN是“client01”,则ACL改为:
    user client01
    topic #
    

3. 验证配置

修改完成后,重启Mosquitto服务,再用客户端测试订阅和接收消息。

4. 排查日志(可选)

如果问题仍存在,在Mosquitto配置中添加log_type all开启全量日志,查看是否有“ACL deny”类的日志条目,进一步确认用户名与权限的匹配情况。

内容的提问来源于stack exchange,提问作者bluscape

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:40:56