BYOCプランでのTLS/SSL設定
MQTTエコシステム内のデータ送信の機密性を保護するために、EMQX BYOCプランではSSLおよびTLS暗号化プロトコルを使用して安全で暗号化された通信チャネルの確立をサポートしています。本ページでは、MQTTシステム内の安全な通信を確保するために、片方向認証および双方向認証モードでのTLS/SSL通信の有効化方法を紹介します。
以下の表は、片方向認証モードと双方向認証モードにおける各種証明書の要件をまとめたものです。
| 認証モード | 自己署名証明書 | サーバー証明書 | 証明書チェーン | 秘密鍵 | クライアントCA証明書 |
|---|---|---|---|---|---|
| 片方向認証 | 不要 | 必須 | 任意 | 必須 | 不要 |
| 双方向認証 | 不要 | 必須 | 任意 | 必須 | 必須 |
片方向認証モード
片方向認証では、サーバー(EMQX MQTTブローカー)がTLS/SSLハンドシェイク時に有効な証明書をクライアント(デバイスまたはアプリケーション)に提示します。クライアントは提示された証明書を信頼できる認証局(CA)と照合し、サーバーの正当性を検証します。
BYOCプランでは、信頼されたCAによって署名された証明書のみが受け入れられます。これによりセキュリティが強化され、MQTTクラスターへの不正アクセスを防止します。
必要な証明書コンポーネント
BYOCのTLS/SSL設定には、PEM形式のサーバー証明書ファイルと対応する秘密鍵ファイルを用意してください。サーバー証明書ファイルには以下の証明書コンポーネントを含めることができます。
サーバー証明書:信頼された認証局(CA)によって発行され、EMQX MQTTブローカーがクライアントと安全な接続を確立するために使用します。
証明書チェーン:サーバー証明書が中間CAを経由して発行されている場合は、中間証明書を含めてクライアントがサーバー証明書を検証できるようにします。ルート証明書は任意です。
対応する秘密鍵はサーバー証明書とは別のPEMファイルとして準備してください。
コンソールでの設定および更新時の証明書要件
EMQX CloudコンソールでBYOCのTLS/SSL設定を作成または更新する際、EMQX Cloudは以下の基準で証明書を検証します。
- X.509証明書はPEM形式で提供してください。証明書ブロック間は空白のみ許可されます。
- サーバー証明書を先頭に配置し、その後に発行順で中間証明書を続けてください。サーバー証明書は1つのみ受け付けます。チェーンは最大5つの証明書まで許容されます。
- サーバー証明書は有効期限内であり、少なくとも5日以上の残存有効期間が必要です。
- 証明書はエンコード、署名、チェーンの検証に合格する必要があります。
- パスワードなしのPEM形式秘密鍵(PKCS#1またはPKCS#8)を提供してください。秘密鍵はサーバー証明書と一致している必要があります。
双方向TLSの場合は、PEM形式の信頼されたクライアントCA証明書を1つ以上提供してください。EMQX Cloudは各証明書を個別に検証します。これらの証明書は順序付きチェーンである必要はありません。チェーンに関する要件はサーバー証明書チェーンのみに適用され、最大5つの証明書、最初の証明書は5日以上の有効期間が必要です。
EMQX CloudはTLS/SSL設定の保存または適用前に証明書を検証し、検証に失敗した場合は現在の証明書および設定を変更しません。
"byoc create"コマンドでのPEMファイル使用
初回デプロイ時に、BYOCツールキットは--sslCertPath、--sslKeyPath、および使用する場合は--clientCaPathで指定されたファイルを検証します。この検証は上記のコンソール検証とは別です。
./byoc createを実行する前に、サーバー証明書、秘密鍵、および任意のクライアントCA証明書ファイルをUbuntu環境にコピーしてください。--sslCertPath、--sslKeyPath、および必要に応じて--clientCaPathでそれぞれの絶対パスを指定します。詳細はデプロイの実行を参照してください。
双方向TLS/SSLの設定
以下の手順は、EMQX Cloudコンソールで双方向TLS/SSLを設定し、TLS/SSL設定済みのクライアント接続をテストする方法を案内します。また、セットアップの各ステップを解説した双方向TLS/SSLチュートリアルもご覧いただけます。
- EMQX Cloudコンソールにログインします。
- デプロイメントの概要ページで、+TLS/SSL Configボタンをクリックして証明書を設定します。ファイルをアップロードするか、証明書内容を直接入力できます。
- TLS/SSLタイプ:双方向(クライアントとサーバーがお互いの証明書を検証)を選択します。
- 証明書および証明書チェーン:カスタムのサーバー側証明書(証明書発行時に第三者機関から提供される証明書チェーンを含む)。
- 証明書秘密鍵:秘密鍵。
- クライアントCA証明書:双方向を選択した場合はクライアントCA証明書を提供する必要があります。
- 全ての項目を入力後、確認をクリックします。デプロイメント概要ページのTLS/SSL Configに証明書情報が表示されます。
MQTTXクライアントで双方向TLSをテスト
テスト前に認証情報を作成していることを確認してください。詳細は認証を参照してください。MQTTXクライアントを使用してEMQX Cloudに接続し、TLS/SSL設定をテストできます。
MQTTXクライアントで新しい接続を作成します。
一般セクションで以下の情報を入力します。
- 名前:接続名を入力します。
- クライアントID:クライアントIDはランダム生成されます。更新ボタンで再生成可能です。
- ホスト:ドロップダウンリストからプロトコルを選択し、デプロイ済みの接続アドレスとポートを入力します。
- MQTT over TLSを使用する場合は、
mqtts://およびポート8883を選択します。 - WebSocket over TLSを使用する場合は、
wss://およびポート8084を選択します。
- MQTT over TLSを使用する場合は、
- ユーザー名とパスワード:作成済みの認証情報を入力します。
- SSL/TLS:トグルスイッチをクリックしてSSL/TLSを有効にします。
- SSLセキュア:トグルスイッチをクリックしてSSLセキュアを有効にします。
- 証明書:必要に応じて証明書を選択します。
- CA署名済みのサーバー証明書を選択します。双方向TLSの場合はクライアント証明書ファイルとクライアント秘密鍵ファイルも入力が必要です。
接続をクリックします。

証明書の更新
証明書の有効期限が近づいた場合や交換が必要な場合は、デプロイメント概要ページで既存のTLS/SSL証明書を更新できます。
EMQX Cloudコンソールにログインします。
デプロイメント詳細ページのTLS/SSL Configセクションで更新対象の証明書を探し、操作列の編集アイコンをクリックします。
TLS/SSL Configダイアログで新しい証明書内容を入力します。ファイルをアップロードするか、内容を直接貼り付けられます。
- TLS/SSLタイプ:証明書タイプは変更できず、既存の証明書と一致します。
- 証明書および証明書チェーン:新しいサーバー証明書の内容(証明書チェーンを含む)を入力します。
- 証明書秘密鍵:新しい証明書に対応する秘密鍵を入力します。
- クライアントCA証明書:双方向TLSの場合はクライアントCA証明書も入力します。
新しいサーバー証明書のCommon Name(CN)はデプロイメントのドメインと一致している必要があります。現在の検証はCNを使用しており、Subject Alternative Name(SAN)のみの一致は不十分です。
確認をクリックします。
証明書の削除
注意
TLS/SSL証明書の削除はBYOC v4デプロイメントのみサポートされています。BYOC v5デプロイメントではこの操作はサポートされていません。
証明書を削除すると、ポート8883および8084でのクライアント接続が切断されます。削除が業務に影響を与えないことを必ず確認してください。
- EMQX Cloudコンソールにログインします。
- TLS/SSL Configセクションで削除したい証明書の削除アイコンをクリックします。
- ダイアログでOKをクリックして削除を完了します。