EMQX 开启http认证

本文档介绍了如何配置EMQX服务器进行HTTP认证,并禁用匿名访问。同时,展示了后台代码中MQTT认证接口的实现。此外,还提供了MQTTX客户端的配置指南,以及遇到常见问题的解决方案,确保生产环境的安全性。

选择模块

在这里插入图片描述

配置http认证

在这里插入图片描述
配置成项目中的路径

emqx服务器配置

生产环境中请禁用匿名认证。
并配置匿名认证开关allow_anonymous 为false;acl_nomatch为deny

# etc/emqx.conf
 
## Allow anonymous authentication by default if no auth plugins loaded.
## Notice: Disable the option in production deployment!
##
## Value: true | false
allow_anonymous = false
 
## Allow or deny if no ACL rules matched.
##
## Value: allow | deny
acl_nomatch = deny

后台代码

@ApiLog
@Api(tags = "https设备认证")
@RestController
@RequestMapping("/v1/device/mqtt")
@RequiredArgsConstructor
public class MqttAuthController {

    final MqttFacade mqttFacade;

      @PostMapping("/auth")
    @ApiOperation(value = "http协议认证", notes = "http协议认证", produces = "application/json")
    @CtlHeaderTrackAnno(source = CtlHeaderTrackAnno.EnumAuthSource.API, mode = CtlHeaderTrackAnno.EnumTrackAuthMode.NONE)
    public ResponseEntity<String> auth(@Validated MqttAuthRequest param) {
        ResponseEntity<String> responseEntity = mqttFacade.auth(param);
        return responseEntity;
    }

    @PostMapping("/acl")
    public ResponseEntity<String> acl(MqttAclRequest httpAclRequest) {
        return ResponseEntity.status(HttpStatus.OK).body("");
    }


}

MQTTX配置

在这里插入图片描述

常见问题

https://docs.emqx.com/zh/enterprise/v4.4/faq/faq.html#%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BC%80%E5%90%AF%E8%AE%A4%E8%AF%81%E5%90%8E-%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%BF%98%E6%98%AF%E5%8F%AF%E4%BB%A5%E4%B8%8D%E9%9C%80%E8%A6%81%E7%94%A8%E6%88%B7%E5%90%8D%E5%AF%86%E7%A0%81%E5%B0%B1%E8%83%BD%E8%BF%9E%E6%8E%A5

在 Docker 环境中部署 EMQX开启密码验证功能,可以通过以下步骤实现: ### 配置用户认证 EMQX 默认的管理员账户为 `admin`,其默认密码为 `public`。若需修改该账户密码或启用更复杂的认证机制,可参考如下方式: #### 修改默认管理员密码 如果仅需更改默认管理员账户的密码,可以使用 `emqx_ctl` 命令行工具执行密码更新操作。假设容器名称为 `emqx`,则命令如下: ```bash docker exec -it emqx ./bin/emqx_ctl admins passwd admin new_password ``` 其中 `new_password` 是您希望设置的新密码[^4]。 #### 启用基于数据库或其他存储方式的身份验证 对于更高级别的安全需求,例如集成外部认证系统(如 MySQL、PostgreSQL 或 LDAP),需要编辑 EMQX 的配置文件 `emqx.conf` 中的相关部分以指定认证插件和参数。具体配置项包括但不限于: - 认证方式的选择 (`auth.type`) - 数据库连接字符串 (`auth.mysql.server`, `auth.postgresql.server` 等) - 查询语句定义 (`auth.mysql.auth_query`, `auth.ldap.auth_bind_dn` 等) 这些配置通常位于容器内部 `/etc/emqx/` 目录下。为了便于维护和持久化配置更改,建议在启动容器时通过卷挂载的方式将本地目录映射至容器内的配置目录。例如: ```bash docker run -d \ --name emqx \ -p 1883:1883 \ -p 8083:8083 \ -p 8883:8883 \ -p 8084:8084 \ -p 18083:18083 \ -v /host/path/to/config:/etc/emqx \ emqx/emqx:latest ``` ### 验证配置 一旦完成上述配置并重启了 EMQX 容器,可以通过访问 Web 管理界面 http://localhost:18083 来检查新的认证设置是否生效。登录时应使用更新后的凭据进行尝试。 此外,还可以利用 MQTT 客户端工具测试与服务器之间的连接及认证过程,确保客户端能够正确地通过提供的用户名和密码建立连接。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁漂打工仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值