13,007
回編集
121行目: | 121行目: | ||
必要であれば、MQTTブローカーサービスを自動起動に設定する。<br> | 必要であれば、MQTTブローカーサービスを自動起動に設定する。<br> | ||
sudo systemctl enable mosquitto | sudo systemctl enable mosquitto | ||
<br> | |||
==== ファイアウォールの設定 ==== | |||
MQTTブローカーの動作に必要なポートを開放する。<br> | |||
<br> | |||
* 標準のMQTT通信用ポート | |||
*: TCP : 1883 | |||
* SSL/TLS暗号化通信用ポート | |||
*: TCP : 8883 | |||
<br> | |||
sudo firewall-cmd --permanent --add-port=1883/tcp | |||
sudo firewall-cmd --permanent --add-port=8883/tcp | |||
sudo firewall-cmd --reload | |||
<br> | |||
==== ユーザとパスワードの設定 ==== | |||
まず、MQTTユーザを追加する。<br> | |||
次に、パスワード (プロンプトが表示される) を入力する。<br> | |||
sudo mosquitto_passwd -c /etc/mosquitto/passwd <初めて登録するユーザ名> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>追加のユーザを作成する場合は、<code>-c</code>オプションは付加しないこと。</u><br> | |||
<u><code>-c</code>オプションは、既存ファイルを上書きするためである。</u><br> | |||
sudo mosquitto_passwd /etc/mosquitto/passwd <追加するユーザ名> | |||
<br> | |||
==== Mosquittoの設定 ==== | |||
まず、Mosquittoの設定ファイルを作成する。<br> | |||
sudo vi /etc/mosquitto/conf.d/default.conf | |||
<br> | |||
次に、Mosquittoの設定を記述する。<br> | |||
# ポート設定 | |||
listener 1883 | |||
# 匿名接続の許可 / 不許可 | |||
allow_anonymous false | |||
# パスワードファイルの指定 | |||
password_file /etc/mosquitto/passwd | |||
<br> | |||
==== セキュリティ設定 (推奨) ==== | |||
TLS/SSL通信を有効にする。<br> | |||
<br> | |||
# SSL/TLS証明書の作成 | |||
sudo mkdir /etc/mosquitto/certs | |||
cd /etc/mosquitto/certs | |||
# 証明書ファイルを作成する | |||
sudo openssl req -new -x509 -days <期限 例: 365> -extensions v3_ca -keyout <CA証明書ファイル名 例: ca.key> -out <CRT証明書ファイル名 例: ca.crt> | |||
# 2048ビット RSAで公開鍵および秘密鍵を生成する | |||
sudo openssl genrsa -out server.key 2048 | |||
# | |||
sudo openssl req -new -out server.csr -key server.key | |||
# | |||
sudo openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 | |||
<br> | |||
SSL/TLS証明書ファイルをMQTTの設定ファイルに記述する。<br> | |||
# SSL/TLS証明書の設定 | |||
listener 8883 | |||
cafile /etc/mosquitto/certs/ca.crt | |||
certfile /etc/mosquitto/certs/server.crt | |||
keyfile /etc/mosquitto/certs/server.key | |||
tls_version tlsv1.2 | |||
<br> | |||
==== 動作確認 ==== | |||
===== サブスクライバー (購読者) の起動 ===== | |||
mosquitto_sub -h <IPアドレスまたはホスト名> -t test/topic -u <MQTTユーザ名> -P <MQTTユーザ名のパスワード> | |||
<br> | |||
===== パブリッシャー (発行者) の実行 ===== | |||
mosquitto_pub -h <IPアドレスまたはホスト名> -t test/topic -m "<メッセージ内容 例: Hello MQTT>" -u <MQTTユーザ名> -P <MQTTユーザ名のパスワード> | |||
<br><br> | <br><br> | ||