avea un țânțar 1.x care rulează bine pe Debian 10 (cu SSL). Odată cu actualizarea la Debian 11 a venit mosquitto 2.0.11-1.
A trebuit să fac câteva ajustări ale fișierului de configurare pentru ca acesta să pornească. Am citit deja https://mosquitto.org/documentation/migrating-to-2-0/
Pentru testare, în prezent pornesc demonul cu această comandă în mod interactiv:
/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf -v
Dar acum clienții nu se mai pot conecta, indiferent de tipul lor de client (am o mare varietate de ei). Pentru fiecare încercare de conectare la client primesc o intrare de jurnal ca aceasta:
1629544574: conexiune nouă de la x.x.x.x:54278 pe portul 8883.
1629544574: Clientul <necunoscut> a fost deconectat din cauza unei erori de protocol.
Acesta este fișierul de configurare principal:
# Plasați configurația locală în /etc/mosquitto/conf.d/
#
# O descriere completă a fișierului de configurare este la
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto/mosquitto.pid
persistența adevărată
persistence_location /var/lib/mosquitto/
#Simplu
#ascultător 1883
#SSL
ascultător 8883
#keepalive_interval 600
# Nu necesită autentificare
permit_anonymous adevărat
log_type all
fișier log_dest /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
Și acesta este cel SSL (singurul fișier din conf.d):
cafile /etc/mosquitto/certs/ca.cer
certfile /etc/mosquitto/certs/mqtt.cer
fișierul cheie /etc/mosquitto/certs/mqtt.key
dhparamfile /etc/mosquitto/certs/dhparam.pem
#tls_version tlsv1.2
Toate fișierele legate de certificat există:
root@linux06:/etc/mosquitto# ls -l certs/
total 28
-rw-r--r-- 1 țânțar țânțar 3915 Apr 28 02:36 ca.cer
-rw-r----- 1 țânțar țânțar 424 21 august 12:45 dhparam.pem
-rwxr-xr-- 1 țânțar țânțar 3546 Apr 28 02:36 mqtt.cer
-rwxr-x--- 1 țânțar țânțar 3243 Apr 28 02:36 mqtt.key
-rwxr-x--- 1 țânțar țânțar 7528 Apr 28 02:36 mqtt.p7b
-rw-r--r-- 1 țânțar țânțar 130 Apr 28 02:36 CITEȘTE-MĂ
Acceptarea tuturor certificatelor în clienți nu ajută, din păcate. Așa aveam cel puțin cu ce să încep.
Când mut fișierul de configurare ssl, dezactivând astfel SSL, un client se poate conecta foarte bine atunci când încearcă o conexiune simplă.
Ce mi se pare un pic ciudat este asta. Asta nu ar trebui să fie, nu-i așa?
root@linux06:~# openssl s_client -connect 127.0.0.1:8883 -showcerts
CONECTAT(00000003)
scrie:errno=104
---
nu este disponibil niciun certificat de egalitate
---
Nu s-au trimis nume de CA de certificat de client
---
SSL handshake a citit 0 octeți și a scris 283 de octeți
Verificare: OK
---
Nou, (NONE), Cipher este (NIMIC)
Renegocierea sigură NU ESTE acceptată
Compresie: NIMIC
Extindere: NIMIC
Nu s-a negociat ALPN
Datele timpurii nu au fost trimise
Verificați codul de returnare: 0 (ok)
---
root@linux06:~#
Certificatul este încă în regulă (deși va expira în curând; puțin conținut mascat):
root@linux06:~# openssl x509 -text -in /etc/mosquitto/certs/mqtt.cer
Certificat:
Date:
Versiune: 3 (0x2)
Număr de serie:
18:00:00:02:07:9a:37:38:09:44:97:a3:6c:00:01:00:00:02:07
Algoritm de semnătură: sha512WithRSAEncryption
Emitent: DC = org, DC = mascat, DC = mascat, CN = mascat
Valabilitate
Nu înainte de: 26 august 13:20:32 2019 GMT
Nu după: 25 august 13:20:32 2021 GMT
Subiect: C = DE, ST = NA, L = nicăieri, OU = mascat
Informații despre cheia publică a subiectului:
Algoritmul cheii publice: rsaEncryption
Cheie publică RSA: (4096 biți)
Modul:
00:c3:55:4a:ec:47:ba:65:ee:1c:b4:ac:72:73:0d:
4b:c3:ae:94:8c:35:d8:1c:99:7e:0e:d9:12:3b:cf:
c9:6f:2a:f1:c0:e6:10:3e:52:df:a7:5a:36:73:6a:
Sunt la capătul minții. Are cineva idee de ce eșuează asta? Am săpat prin exemplul de configurare, permisiunile sistemului de fișiere și paginile web. Dar se pare că nu găsesc motivul acestei eșecuri.