スマートフォン・タブレットからインターネットサーバーオペレーション 2014

APPW.jp 2014

Mosquitto の SSL 対応を試してみる

以前に、「Mosquitto を VPN で試しました 」では、Mosquitto を OpenVPN 経由で試してみました。

今回は、Mosquitto を SSL 対応にします。

まず、mosquitto-tls は、CA、サーバー、クライアントの各キー・証明書を作成する手順です。

Screenshot_2014-07-31-08-54-50~01

 

CA を作成します。プライベート認証局や独自認証局、自己認証局と呼ばれる、主に個人で使用する認証局です。

mkdir /etc/mosquitto/ca
cd /etc/mosquitto/ca

openssl req -new -x509 -days 365 -extensions v3_ca -keyout ca.key -out ca.crt

サーバー用のキーと証明書を作成します。CSR の設定例は google 検索すると豊富に見つかります。「お名前.com VPS (KVM) にて WordPress をはじめるまで(6)」も参考にどうぞ。Common Name が特に重要です。接続するサーバーを指定します。

mkdir /etc/mosquitto/tls
cd /etc/mosquitto/tls

openssl genrsa -des3 -out server.key 2048

openssl genrsa -out server.key 2048

openssl req -out server.csr -key server.key -new

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

クライアント用のキーと証明書を作成します。

openssl genrsa -des3 -out client.key 2048

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

openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365

/etc/mosquitto/mosquitto.conf に記述を追加します。

port 8883

cafile /etc/mosquitto/ca/ca.crt
capath /etc/mosquitto/ca/
certfile /etc/mosquitto/tls/server.crt
keyfile /etc/mosquitto/tls/server.key
require_certificate true

allow_anonymous false
password_file /etc/mosquitto/passwd

パスワードファイルは次のコマンドで作成します。

mosquitto_passwd -c /etc/mosquitto/passwd username

Mosquitto を再起動します。

service mosquitto restart

Mosquitto へ SSL で接続してみる」では、Python の Mosquitto クライアント プログラムで接続を試します。

また、「Mosquitto の Bridge を SSL で試します」では、ブリッジ接続を SSL で試します。

証明書の有効期限切れ通知

次のようなメッセージが出力されました。これは、証明書の有効期限切れです。証明書を再作成することで解消します。

1443001305: OpenSSL Error: error:14094415:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate expired

「さくらのVPS」2014年11月27日にリニューアル

SSL ボックス が SHA-2 の SSL 証明書発行に対応

Bottle – Cork サンプルを Apache mod_wsgi で試してみます

Mosquitto の Bridge を SSL で試します

Mosquitto へ SSL で接続してみる

Mosquitto Publish と Server-Sent Events で Python チャットサンプルを改造

Python WebSocket のチャットサンプルに、MongoDB 保存を付け加えました

MongoDB に保存した Mosquitto の payload を Server-Sent Events で表示してみる

Mosquitto の payload を MongoDB に保存してみる

Mosquitto を VPN で試しました

via IPv4

カテゴリー