User: kalaschnikow@mail.ru
Pass: kiloYA…“6
mqtts://mqtt-iot.kiloiot.io:1884
{"msg": "msg_20260821102105","lat": 49.04223684221506,"lon": 8.722192514687777}
{"msg": "msg_20260821102105","lat": 49.04223684221506,"lon": 8.722192514687777}
https://docs.openremote.io/docs/user-guide/domains/fleet-management/
{
"type": "Point",
"coordinates": [
8.72233,
49.042166
]
}
User: blubbsik@gmx.de
Pass: thingsYA…
A small “How To” by RouterOS: https://help.mikrotik.com/docs/spaces/ROS/pages/166920428/GPS-tracking+using+MQTT+and+ThingsBoard
Certificates are in /mnt/sda4/development/_projects/fleet-management/
A forum post (with example code?) that seems to be interesting: https://community.hivemq.com/t/hivemq-client-mtls-is-failing/1548/2
Example code from google:
import com.hivemq.client.mqtt.MqttClient;
import com.hivemq.client.mqtt.mqtt5.Mqtt5BlockingClient;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.TrustManagerFactory;
import java.io.FileInputStream;
import java.io.InputStream;
import java.security.KeyStore;
public class MqttSslExample {
public static void main(String[] args) {
try {
// 1. Pfade und Passwörter definieren
String truststorePath = "pfad/zu/client-truststore.jks";
String truststorePassword = "truststore_passwort";
String keystorePath = "pfad/zu/client-keystore.p12"; // Oft PKCS12 (.p12/.pfx)
String keystorePassword = "keystore_passwort";
// 2. TrustManagerFactory initialisieren (Zertifikat des Brokers validieren)
KeyStore trustStore = KeyStore.getInstance("JKS"); // oder "PKCS12"
try (InputStream tsIn = new FileInputStream(truststorePath)) {
trustStore.load(tsIn, truststorePassword.toCharArray());
}
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(trustStore);
// 3. KeyManagerFactory initialisieren (Eigenes Client-Zertifikat für mTLS - Optional)
KeyStore keyStore = KeyStore.getInstance("PKCS12");
try (InputStream ksIn = new FileInputStream(keystorePath)) {
keyStore.load(ksIn, keystorePassword.toCharArray());
}
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, keystorePassword.toCharArray());
// 4. HiveMQ MQTT Client mit SSL-Konfiguration bauen
Mqtt5BlockingClient client = MqttClient.builder()
.useMqttVersion5()
.serverHost("ihr-secure-broker.de")
.serverPort(8883)
.sslConfig()
.trustManagerFactory(trustManagerFactory) // Broker-Zertifikat prüfen
.keyManagerFactory(keyManagerFactory) // Client-Zertifikat mitsenden (mTLS)
.applySslConfig()
.buildBlocking();
// Client verbinden
client.connect();
System.out.println("Erfolgreich über TLS verbunden!");
client.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Also interesting :