Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mosquitto PSK Encryption not working

Tags:

mosquitto

I'm trying to build a PSK Encryption bridge connection with mosquitto following this tutorial. I'm using two docker containers. One as a bridge and another one as a server. Both of them on different computers. The connection works fine with no encryption. For the subscriptions to the topics I'm using node-red.

This is the configuration file for the server:

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

For the bridge connection I have to files.

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

And 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

In the logfile of the server I can see the following error:

Socket error on client unknown, disconnecting.

And in the bridge connection I see the following error:

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

I don't know what I'm doing wrong. If I remove the encryption everything works fine.

like image 984
JosepB Avatar asked Feb 17 '26 03:02

JosepB


1 Answers

It seems that the default docker container of mosquitto in docker hub has not included the psk encryption in the mosquitto build as is shown in this post.

I had to build my own image installing mosquitto as following:

RUN apt-get -y update && \
    apt-get -y install mosquitto mosquitto-clients
like image 83
JosepB Avatar answered Feb 21 '26 14:02

JosepB