蚊子 PSK 加密不起作用

mosquitto PSK Encryption not working

我正在按照 this 教程尝试使用 mosquitto 建立 PSK 加密桥连接。我正在使用两个 docker 容器。一个作为桥梁,另一个作为服务器。他们两个在不同的计算机上。连接工作正常,没有加密。对于主题的订阅,我使用的是 node-red。

这是服务器的配置文件:

port 1883

persistence true
persistence_location /mosquitto/data/
#persistence_file mosquitto.db
#cleansession false
#clientid nodered

listener 8883
psk_hint broker-server
psk_file /mosquitto/certs/psk_file.txt

log_type all
log_dest file /mosquitto/log/mosquitto.log
connection_messages true
log_timestamp true
allow_anonymous true
#password_file /mosquitto/config/passwd

对于桥接,我必须提交文件。

mosquitto.conf:

#include_dir /etc/mosquitto/conf.d

# GENERAL CONFIGURATION BROKER
# ----------------------------------------------------------------
pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/


log_type all
log_dest file /etc/mosquitto/log/mosquitto.log

include_dir /etc/mosquitto/bridges

# ----------------------------------------------------------------
# SECURITY (comm. Nordic -> RPI): Password

#password_file /etc/mosquitto/passwd
allow_anonymous true

和bridge.conf:

# =================================================================
# Bridges to Node Red
# =================================================================

# IP address
#connection client-bridgeport
connection bridge-01
address 192.168.1.34:8883
bridge_identity bridgeport
bridge_psk 123456789987654321

# -----------------------------------------------------------------
# TOPICS
topic # out 1 ""
topic # in 1 ""

# ------------------------------------------------------------------

# Setting protocol version explicitly
#bridge_protocol_version mqttv311
#bridge_insecure false

# Bridge connection name and MQTT client Id,
# enabling the connection automatically when the broker starts.
cleansession false
remote_clientid broker-server
start_type automatic
#notifications false
log_type all

在服务器的日志文件中,我可以看到以下错误:

Socket error on client unknown, disconnecting.

并且在网桥连接中我看到以下错误:

Bridge broker-server sending CONNECT Socket error on client local.broker-server, disconnecting.

我不知道我做错了什么。如果我删除加密,一切正常。

好像mosquitto in docker hub has not included the psk encryption in the mosquitto build as is shown in thispost的默认docker容器。

我必须构建自己的安装 mosquitto 的映像,如下所示:

RUN apt-get -y update && \
    apt-get -y install mosquitto mosquitto-clients