TLS-Fehler beim Verbinden mit Hermetry über mosquitto_pub unter Windows, wie erhalte ich ausführliche Logs?
Von Türkçe mit KI übersetzt ·
Bevor ich die Firmware auf das Feldgerät schreibe, möchte ich die Verbindung mit dem mosquitto-Client von meinem Windows-10-Laptop testen. Mosquitto 2.0.18, offizielle Windows-Installation. Ich habe das Gerät in Hermetry geöffnet und ein Access-Token erhalten.
mosquitto_pub -h 185.x.x.x -p 8883 -u <token> -t v1/telemetry -m "{"t":21.4}" -q 1
Error: A TLS error occurred.
Es wird nichts anderes ausgegeben. Der Broker gehört nicht mir, daher kann ich sein Log nicht einsehen. Wie bekomme ich ausführliche Logs auf der Client-Seite? Früher gab es in mosquitto.conf log_type all, aber das galt wohl für den Broker.
Saha cihazının firmware’ini yazmadan önce bağlantıyı Windows 10 dizüstünden mosquitto istemcisiyle denemek istiyorum. Mosquitto 2.0.18, resmi Windows kurulumu. Cihazı Hermetry’de açtım, access token aldım.
mosquitto_pub -h 185.x.x.x -p 8883 -u <token> -t v1/telemetry -m "{"t":21.4}" -q 1
Error: A TLS error occurred.
Başka hiçbir şey yazmıyor. Broker benim değil, onun loguna bakamıyorum. İstemci tarafında ayrıntılı log almanın yolu nedir? Eskiden mosquitto.conf’ta log_type all vardı ama o broker için sanırım.
Von Türkçe mit KI übersetzt ·
Füge -d hinzu, dann gibt es Debug-Ausgaben.
-d ekle, debug çıktısı verir.
Von Türkçe mit KI übersetzt ·
Ich habe es hinzugefügt. Nur Client null sending CONNECT und danach derselbe TLS-Fehler. CONNACK kommt nicht einmal an, also bleibt es beim Handshake hängen.
Ekledim. Sadece Client null sending CONNECT ve arkasından aynı TLS hatası. CONNACK bile gelmiyor yani el sıkışmada kalıyor.
Von Türkçe mit KI übersetzt ·
Wenn kein CONNACK kommt, bleibst du beim TLS-Handshake hängen. In deinem Befehl stecken zwei Dinge, und beide verursachen das.Erstens verbindest du dich über die IP-Adresse. Hermetry verlangt SNI, das heißt, der Client muss beim Handshake den Servernamen mitsenden; bei einer Verbindung über die IP geschieht das nicht, und der Handshake bricht ab. Verwende den Hostnamen aus der Karte Connection details deines Geräts, die Adresse deiner Region.Zweitens verwendet der mosquitto-Client unter Windows nicht automatisch den Zertifikatsspeicher des Systems. In Version 2.x gibt es --tls-use-os-certs, alternativ übergibst du ein vorhandenes CA-Bündel mit --cafile. Bei meinem ersten Versuch hatte ich beides vergessen und habe exakt dieselbe Meldung erhalten.
mosquitto_pub -d -h <connection details'teki host> -p 8883 --tls-use-os-certs ^
-i test-pc-01 -u <token> -t v1/telemetry -q 1 -m "{"t":21.4}"
Sobald die Verbindung steht, siehst du weitere Fehler (etwa CONNACK 4, 5) im Log-Tab des Geräts zusammen mit ihrer Ursache; die Ursache bei 5 wird dem Gerät nie gesendet, sie wird nur dort angezeigt. Die Übersicht findest du hier: Cihaz bağlanmıyor.
CONNACK gelmiyorsa TLS el sıkışmasında takılıyorsun. Komutunda iki şey var, ikisi de bunu yapar.
Birincisi IP ile bağlanıyorsun. Hermetry SNI istiyor, yani istemci el sıkışmada sunucu adını göndermeli; IP ile bağlanınca bu olmuyor ve el sıkışma düşüyor. Cihazın Connection details kartındaki host adını kullan, kendi bölgenin adresini.
İkincisi Windows’taki mosquitto istemcisi sistemin sertifika deposunu kendiliğinden kullanmıyor. 2.x sürümlerinde --tls-use-os-certs var, ya da elindeki bir CA paketini --cafile ile ver. Ben ilk denememde ikisini de unutmuştum, birebir aynı mesajı aldım.
mosquitto_pub -d -h <connection details'teki host> -p 8883 --tls-use-os-certs ^
-i test-pc-01 -u <token> -t v1/telemetry -q 1 -m "{"t":21.4}"
Bağlantı açılınca bundan sonraki hataları (CONNACK 4, 5 gibi) cihazın Log sekmesinde nedeniyle birlikte görürsün; 5’in nedeni cihaza hiç gönderilmiyor, sadece orada yazıyor. Tablo burada: Cihaz bağlanmıyor.
Von Türkçe mit KI übersetzt ·
Mit Hostname + –tls-use-os-certs hat es funktioniert, CONNACK 0, PUBACK kam an. Den Versuch mit der IP habe ich gemacht, weil das Firmen-DNS zu dem Zeitpunkt nicht funktioniert hat, und danach habe ich es vergessen. Danke dir.
Host adı + –tls-use-os-certs ile geçti, CONNACK 0, PUBACK geldi. IP ile denememin sebebi kurumdaki DNS’in o sırada çalışmaması, sonra da unutmuşum. Sağ olun.
Von Türkçe mit KI übersetzt ·
Das Gleiche gilt auch für das Gerät, im Firmware keine feste IP-Adresse einstellen. Bei unserer RTU war das so gemacht worden, und wir haben monatelang gesucht, warum sie sich nicht verbindet.
Cihazda da aynı şey geçerli, firmware’de IP sabitlemeyin. Bizim bir RTU’da öyle yapılmıştı, aylarca neden bağlanmadığını aradık.
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Mitdiskutieren
Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

