就上下文而言,我正在使用 Eclipse Mosquitto 代理,并希望我的客户端通过 TSL/SSL 进行连接(因此服务器和客户端都提供证书)。另外,我希望我的代理配置是动态的,为此我想使用动态安全插件。
我研究了动态安全插件文档,在我看来,动态安全插件不支持使用基于证书的加密,因为在创建新客户端时除了提供用户名/密码之外没有其他选项。从这里添加新客户端的命令如下:
{
"command": "addUser",
"username": "", # Required
"password": "", # Required, must not be empty.
"clientid": "", # Optional, if empty then any client id is valid for
# this username. If not empty, then only a specific
# clientid may use this username.
"policyName": "", # Optional, if empty or omitted then use the default
# user policy
},
可以看出,用户名和密码是必需的,而不是可选的。所以在我看来,我无法定义使用证书连接的客户端。这是正确的吗?如果不正确,那么是否有关于如何使用基于证书的身份验证和动态安全插件的文档?
假设您所说的“基于证书的加密”时指的是基于证书的身份验证
那么以下 2 个配置选项将会有所帮助:
use_subject_as_username
use_identity_as_username
当新客户端连接时,这些将与整个主题或仅使用客户端证书的 CN 值作为用户名。
这两个选项在
mosquitto.conf
可用的手册页这里都有清楚的解释