【发布时间】:2017-03-01 19:45:33
【问题描述】:
我想知道是否有一种方法可以将 Mosquitto 配置为在连接到外部客户端时需要 TLS 和客户端证书,而不需要为内部客户端提供 TLS 和客户端证书。我应该对 CA(证书颁发机构)或 .conf 文件做些什么吗?我需要做什么才能正确配置它来完成这个?对此的任何帮助将不胜感激。
【问题讨论】:
我想知道是否有一种方法可以将 Mosquitto 配置为在连接到外部客户端时需要 TLS 和客户端证书,而不需要为内部客户端提供 TLS 和客户端证书。我应该对 CA(证书颁发机构)或 .conf 文件做些什么吗?我需要做什么才能正确配置它来完成这个?对此的任何帮助将不胜感激。
【问题讨论】:
如果您想为内部和外部使用相同的端口 (1883),那么您可能需要代理机器有 2 个网络接口(一个内部,一个外部),以便您可以将侦听器绑定到不同的 IP 地址(例如不做端口转发)。
如果您要进行端口转发,那么您将不得不为内部/外部使用不同的端口。
假设有 2 个接口:
# internal
port 1883
bind_address <internal-ip>
#external
listener <external-ip>:1883
cafile /path/to/ca/cert
keyfile /path/to/key
certfiel /path/to/cert
require_certificate true
这应该允许内部匿名无 ssl 连接和外部 SSL + 客户端证书。
如果你正在做端口转发,去掉外部IP地址并改变它监听的端口号,你仍然可以从路由器转发1883。
【讨论】: