MQTT - ブローカー - SSH - 設定


クラウディア 


1. 概要
2. mosquitto 設定
3. クライアント接続
6. 参考サイト

1. 概要

 前ページで作成した証明書を利用して、「mosquitto」に「SSH」の設定を行います。

2. mosquitto 設定

 「mosquitto」の設定を行います。

sudo vi /etc/mosquitto/mosquitto.conf
 下記の行を加えます。

listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key

require_certificate true
use_identity_as_username true
 上記は、上から、下記の定義を行っています。 ・SSH 用のポート番号 ・CA 証明書 ・サーバー証明書 ・サーバー秘密鍵 ・クライアント認証を必須に ・クライアント証明書 CN をユーザー名として使用  再起動します。

sudo systemctl restart mosquitto

3. クライアント接続

 クライアントマシンのカレントディレクトリに、サーバマシンから下記のファイルをコピーして。

/etc/mosquitto/certs/ca.crt
/etc/mosquitto/certs/client.crt
/etc/mosquitto/certs/client.key
 所有権を設定します。  ログインユーザを仮に「hogehoge」として。

sudo chown hogehoge:hogehoge ca.crt client.crt client.key
 「subcriber」を起動します。

mosquitto_sub -h ip_address -p 8883 -t test/topic -i client --cafile ca.crt --cert client.crt --key client.key -d

Client client sending CONNECT
Client client received CONNACK (0)
Client client sending SUBSCRIBE (Mid: 1, Topic: test/topic, QoS: 0, Options: 0x00)
Client client received SUBACK
Subscribed (mid: 1): 0
 もう一台端末を開いて、「publisher」を起動します。

mosquitto_pub -h ip_address -p 8883 -t test/topic -m "message send" -i client --cafile ca.crt --cert client.crt --key client.key -d

Client client sending CONNECT
Client client received CONNACK (0)
Client client sending PUBLISH (d0, q0, r0, m1, 'test/topic', ... (12 bytes))
Client client sending DISCONNECT
 この時点で、「subcriber」側に。

Client client sending CONNECT
Client client received CONNACK (0)
Client client sending SUBSCRIBE (Mid: 2, Topic: test/topic, QoS: 0, Options: 0x00)
Client client received SUBACK
Subscribed (mid: 2): 0
 と表示されれば、疎通テストは正常です。

6. 参考サイト

 本ページは、「ChatGPT」軍曹および下記のサイトを参考にさせていただきました。
【Mosquitto】MQTTブローカの構築・動作確認 (ユーザ認証・TLS暗号化まで) #mqtt

EaseUS
AbemaTV 無料体験