2023 m. spalio 23 d., pirmadienis

mqtt

Mqtt tools

Mqtt explorer - Install tools for testing mqtt.

mosquitto_pub  - Unix tool for testing

https://testclient-cloud.mqtt.cool/ - Online tool

 

Patho-mqtt guide

Patho-mqtt guide with tls

 

 Brokers:

 

QoS LevelBenefits
QoS 0- Lowest overhead

- Fast message delivery

- No guaranteed message delivery

- No message retransmissions

- Suitable for non-critical data or real-time updates

- Minimal impact on network bandwidth

- Simple and efficient for scenarios where message loss is acceptable
QoS 1- Ensures at least once delivery

- Minimal message duplication

- Suitable for scenarios where some duplicates are acceptable, but loss is not

- Guarantees that messages are not lost

- Requires acknowledgement (PUBACK) for every message

- Provides a balance between reliability and efficiency
QoS 2- Ensures exactly once delivery

- No message duplication

- Suitable for mission-critical and highly reliable applications

- Guarantees that messages are not lost or duplicated

- Most reliable but involves more overhead

- Requires a complex handshake (PUB, PUBREC, PUBREL, PUBCOMP) for every message

 Connecting to mosquito TLS

I successfully established a secure TLS/MQTT connection between a publisher, a broker, and a subscriber. Here's the step-by-step procedure I followed:

1. Generate a private key:
   openssl genrsa -out client.key

2. Generate the Certificate Signing Request (CSR):
   openssl req -out client.csr -key client.key -new

3. Submit the CSR content to test.mosquitto.org/ssl/ and obtain the "client.crt" file.

4. Download the "mosquitto.org.crt" from test.mosquitto.org/.

5. Ensure all the following files are in the same folder:
   - client.crt
   - client.csr
   - client.key
   - mosquitto.org.crt

6. To publish, use the following command:
   mosquitto_pub --cafile mosquitto.org.crt --key client.key --cert client.crt -h test.mosquitto.org -m "Hello World" -t "test" -p 8884 -d

7. On the subscriber side, use the following command:
   mosquitto_sub -h test.mosquitto.org -t "test" -p 8884 --cafile mosquitto.org.crt --key client.key --cert client.crt -d

I followed this procedure on my Ubuntu PC, and the TLS/MQTT connection is working flawlessly. 



Links

This guide demonstrates how to act as your own certificate authority (CA)