能否为MQTT多个Listener配置不同的ssl_options.fail_if_no_peer_cert参数?
可以为MQTT配置多个带不同SSL参数的监听器吗?
当然可以,你完全可以为MQTT Broker配置多个SSL监听器,并分别设置不同的fail_if_no_peer_cert参数,以此实现一个端口强制证书认证、另一个端口允许用户名/密码认证的需求。
你的配置思路是正确的,下面对配置细节做具体解释:
mqtt.listeners.ssl.default = 8883:定义第一个默认SSL监听器,监听8883端口mqtt.listeners.ssl.1 = 58883:定义第二个编号为1的SSL监听器,监听58883端口ssl_options.fail_if_no_peer_cert = true:给默认监听器(8883端口)设置强制要求客户端提供证书ssl_options.1.fail_if_no_peer_cert = false:给编号为1的监听器(58883端口)设置不强制要求客户端证书,此时该端口可使用用户名/密码认证
核心配置片段如下:
[...] # 默认监听器(8883端口):强制证书认证 ssl_options.fail_if_no_peer_cert = true # 编号1的监听器(58883端口):不强制证书认证 ssl_options.1.fail_if_no_peer_cert = false # 声明两个SSL监听器端口 mqtt.listeners.ssl.default = 8883 mqtt.listeners.ssl.1 = 58883 [...]
如果使用Mosquitto这类Broker,还可以用更直观的独立配置方式,先开启单监听器独立配置开关,再分别定义每个监听器的参数:
per_listener_settings true # 8883端口:强制证书认证 listener 8883 :: cafile /path/to/ca.crt certfile /path/to/server.crt keyfile /path/to/server.key require_certificate true # 58883端口:允许用户名/密码认证 listener 58883 :: cafile /path/to/ca.crt certfile /path/to/server.crt keyfile /path/to/server.key require_certificate false
内容的提问来源于stack exchange,提问作者Yannic Hamann
相关产品推荐
相关产品推荐

