コーヒー飲みながら仕事したい

仕事で使う技術的なことの備忘録とか


Wordpress に引っ越しました!

mosquitto でパスワード認証の設定をする

移転しました。

概略手順

  1. ブローカー側で保持するパスワードファイルを作成
  2. 作成したパスワードファイルを、config ファイルに登録する
  3. config ファイルを起動オプションに指定して、ブローカーを起動する
  4. クライアント側でもオプションにユーザー名とパスワードを指定して起動する

サーバー側

パスワードファイルの作成

コマンドプロンプトにて以下のように入力します。

C:\Program Files (x86)\mosquitto> mosquitto_passwd -b pwfile username password 
  • pwfile は、パスワードファイルのパス名です
  • username は、作成するユーザー名です
  • password は、作成するパスワードです

上記のコマンドを入力すると、指定したパスに pwfile というファイルが生成されます。

config ファイルの設定

ブローカーアプリ(mosquitto.exe)のあるフォルダ内にある mosquitto.config をメモ帳等で開きます。

(デフォルトでは C:\Program Files (x86)\mosquitto にあるはず)

最終行に以下を追記します。

allow_anonymous false
password_file ./pwfile

ここで、 ./pwfile は、作成したパスワードファイルのパスです。相対パスまたは絶対パスどちらでもいいです。
なお、 allow_anonymous false は、パスワードなしのクライアント接続を弾くというオプションです。これを記載しないと、パスワード認証するけど、パスワードなしのアクセスも受け付けるという謎挙動になります。

ブローカーの起動

コマンドプロンプトにて以下のように入力して、ブローカーを起動します。

mosquitto -v -c mosquitto.conf

ここで、-c mosquitto.conf は、 config ファイルのパスになります。デフォルトでは上記の通りでいいはずです。

クライアント側

mosquitto に同梱されているクライアントアプリを例にします。

接続時に、以下のようにオプションをつけるとパスワード認証で接続できます。
(注:-P は大文字です)

C:\Program Files (x86)\mosquitto> mosquitto_sub -t なんかのトピック -u ユーザー名 -P パスワード

‐‐‐

以上で、パスワード認証ができるはずです。

参考

qiita.com