「Web - MQTTブローカー」の版間の差分

ナビゲーションに移動 検索に移動
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>


案内メニュー