EMQX 开源版本 5.1.4

部署到Windows下,为了启动自动分配端口,我把之前5.0的conf配置,直接复制到etc/emqx.conf,启动后在控制台修改了wss的证书,但是客户端无法连接,只有MQTTX关闭服务端验证的时候就可以连上上了。

1、这样的SSL不就失效了吗,在不用nginx的情况下,怎么配置WSS
2、发现在控制台修改的配置,在重启后,又变回etc/emqx.conf的配置了

配置优先级: ENV > emqx.conf > API
比如:当一个配置出现在API 和emqx.conf 都,以emqx.conf为准

唯一的例外:可能会现临时生效,
当一个配置已经出现在emqx.conf时,再通过API去改他,会马上生效(API生效了)
这里API和emqx.conf都有,且生效的是API
重启后,由于优先级的原因,emqx.conf会更次大于API,emqx.conf生效。

所以为了避免这种临时生效的情况。不要同时使用API和emqx.conf来改,
emqx.conf适合于固化配置(不改的),如果需要随时能改的,推荐只使用API(dashboard)

了解了,ssl也也解决了,客户给错证书了

还有个问题,我已经使用emqx.conf启动一次了,现在想使用控制台来操作改动,可不可以先停止服务,再把emqx.conf删除了,再启动服务,这样端口会变为EMQX默认吗?因为我在emqx.conf修改了默认端口

SSL 如果需要验证客户端证书,需要在emqx上开启:

listeners.wss.default {
...
ssl_options {
        ## Enable or disable peer verification
        verify = verify_peer  ## use verify_peer to enable

        ## if `verify' is enabled, whit true, the connection fails if the client does not have a certificate to send
        fail_if_no_peer_cert = true
}
}}

你已经在emqx.conf中删除了对应的配置,那么,再启动服务里,就会以API(dashboard)的为准,不会变成默认的。

PS: 配置不是简单的替换,是用merge,所以如果你只是删除了emqx.conf中的端口,其它的证书信息保留,也是会生效的,那么他就会使用API的端口和emqx.conf的证书的结合。

PS: 如果你需要达到没有客户端证书就不让连,则需要开始我上面说的两个选项哈。
上面2个选项可以让MQTTX 关闭服务端验证的时候就连不上来,因为没有给证书。就不让连。

好的,感谢回复