Přeskočit na hlavní obsah

MQTT přes TLS

Tento návod obsahuje všechny informace potřebné k zprovoznění TLS s vlastnoručně podepsanými certifikáty.

Certifikační autorita

Nejprve je potřeba nastavit certifikační autoritu.

Je to poměrně přímočaré:
openssl req -new -x509 -days <duration> -extensions v3_ca -keyout ca.key -out ca.crt

Server

Za druhé je potřeba nastavit server.

Certifikát

Vygenerujte klíč serveru.
openssl genrsa -aes256 -out server.key rsa 4096

Nebo vygenerujte klíč serveru bez šifrování.
openssl genrsa -out server.key rsa 4096

Vygenerujte žádost o podepsání certifikátu.
openssl req -out server.csr -key server.key -new

Vytvořte soubor v3.ext s následujícím obsahem.

subjectAltName = DNS:hostname, IP:10.0.0.0

Pokud chcete v SAN pro specifikaci serveru Mosquitto použít hostname a 10.0.0.0, nahraďte je svým hostname a IP adresou.
Více informací o SAN najdete v tomto RFC.

Podepište CSR klíčem své CA.

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -extfile v3.ext

Nastavení Mosquitto

Také je potřeba nakonfigurovat Mosquitto tak, aby tyto certifikáty a klíče skutečně používalo.

Vytvořte konfigurační soubor pro mosquitto (například nano mosquitto.conf).

per_listener_settings true

listener 1883
allow_anonymous true

listener 8883
cafile /path/to/ca.crt
certfile /path/to/server.crt
keyfile /path/to/server.key
allow_anonymous false
require_certificate true
use_identity_as_username true
acl_file /path/to/acl

Mosquitto s tímto konfiguračním souborem spustíte pomocí volby -c: mosquitto -c mosquitto.conf

Klient

Nakonec je potřeba klienta také autentizovat a autorizovat.

Certifikát

Vygenerujte klíč klienta.
openssl genrsa -aes256 -out client.key rsa 4096

Nebo vygenerujte klíč klienta bez šifrování.
openssl genrsa -out client.key rsa 4096

Vygenerujte CSR.
openssl req -out client.csr -key client.key -new

Podepište CSR klíčem své CA.
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365

Odešlete soubory client.key, client.crt a ca.crt do zařízení TAPPER a odpovídajícím způsobem upravte konfiguraci TAPPER.

tip

Soubory můžete odeslat pomocí scp