BYOCプランでのTLS/SSL設定
MQTTエコシステム内のデータ送信の機密性を保護するために、EMQX BYOCプランではSSLおよびTLS暗号化プロトコルを使用した安全で暗号化された通信チャネルの確立をサポートしています。本ページでは、MQTTシステム内の安全な通信を確保するために、片方向認証および双方向認証モードでのTLS/SSL通信の有効化方法を紹介します。
以下の表は、片方向認証モードと双方向認証モードにおける各種証明書の要件概要を示しています。
| 認証モード | 自己署名証明書 | サーバー証明書 | 証明書チェーン | 秘密鍵 | クライアントCA証明書 |
|---|---|---|---|---|---|
| 片方向認証 | 不要 | 必須 | 必須 | 必須 | 不要 |
| 双方向認証 | 不要 | 必須 | 必須 | 必須 | 必須 |
片方向認証モード
片方向認証では、サーバー(EMQX MQTTブローカー)がTLS/SSLハンドシェイク時に有効な証明書をクライアント(デバイスまたはアプリケーション)に提示します。クライアントは提示された証明書を信頼できる認証局(CA)と照合してサーバーの正当性を検証します。
BYOCプランでは、信頼されたCAによって署名された証明書のみが受け入れられます。これによりセキュリティが強化され、MQTTクラスターへの不正アクセスを防止します。
必須証明書コンポーネント
TLS/SSLをBYOC環境で設定するには、以下のコンポーネントを含む単一のPEMファイルを準備する必要があります。このPEMファイルは、MQTTクライアントとEMQX MQTTブローカー間の安全な片方向認証を有効にするために重要です。
サーバー証明書:信頼された認証局(CA)によって発行され、EMQX MQTTブローカーがクライアントと安全な接続を確立するために使用します。
証明書チェーン:信頼されたルートCA証明書までの完全な証明書チェーンを含めます。これによりクライアントデバイスはサーバー証明書の正当性を検証できます。
秘密鍵:サーバー証明書に対応する秘密鍵であり、クライアントとEMQX MQTTブローカー間の通信を復号化するために必要です。
証明書の形式および標準ガイドライン
TLS/SSL設定用の証明書を準備する際は、以下のガイドラインに従ってください。
証明書は暗号化アルゴリズムおよび鍵長を指定する必要があります。EMQX BYOCは1024ビットRSA(RSA_1024)および2048ビットRSA(RSA_2048)アルゴリズムをサポートします。
証明書はSSL/TLS X.509バージョン3標準に準拠し、公開鍵、ウェブサイトの完全修飾ドメイン名(FQDN)またはIPアドレス、および発行者情報を含む必要があります。
証明書は有効である必要があり、有効期間の開始前または終了後30日以内にインポートしてはいけません。
証明書、秘密鍵、および証明書チェーンはすべてPEMエンコードである必要があります。
秘密鍵はパスワードなしで、PKCS#1およびPKCS#8をサポートしている必要があります。
証明書の暗号化アルゴリズムは署名CAの暗号化アルゴリズムと一致している必要があります。例えば、署名CAがRSAを使用している場合、証明書の鍵タイプもRSAである必要があります。
これらのガイドラインは、BYOC環境でのTLS/SSLの適切な設定と安全な運用を保証します。
"byoc create"コマンドでのPEMファイルの使用
BYOCのデプロイ時には、PEMファイルをUbuntu環境のディレクトリにコピーし、./byoc createコマンドを実行する前にアクセス可能な状態にしてください。./byoc createコマンドでBYOC環境をデプロイする際、パラメータ--sslCertPathにPEMファイルの絶対パスを指定する必要があります。パラメータ設定の詳細はデプロイの実行を参照してください。
双方向TLS/SSLの設定
以下の手順では、EMQX Cloud Consoleで双方向TLS/SSLを設定し、TLS/SSL設定済みのクライアント接続をテストする方法を説明します。また、セットアップの各ステップを解説した双方向TLS/SSLチュートリアルもご覧いただけます。
- EMQX Cloud Consoleにログインします。
- デプロイの概要ページで、+TLS/SSL設定ボタンをクリックして証明書を設定します。ファイルをアップロードするか、証明書内容を直接入力できます。
- TLS/SSLタイプ:双方向(クライアントとサーバーがお互いの証明書を検証)を選択します。
- 証明書および証明書チェーン:カスタムサーバー側証明書(証明書発行時に第三者機関から提供される証明書チェーンを含む)。
- 証明書秘密鍵:秘密鍵を入力します。
- クライアントCA証明書:双方向を選択した場合、クライアントCA証明書の提供が必要です。
- すべての項目を入力後、確定をクリックします。デプロイの概要ページに戻ると、TLS/SSL設定に証明書情報が表示されます。
MQTTXクライアントで双方向TLSをテスト
テスト前に認証情報を作成していることを確認してください。詳細は認証を参照してください。MQTTXクライアントを使用してEMQX Cloudに接続し、TLS/SSL設定をテストできます。
MQTTXクライアントで新しい接続を作成します。
一般セクションに以下の情報を入力します:
名前:接続の名前を入力します。
クライアントID:クライアントIDはランダム生成されます。更新ボタンをクリックすると再生成可能です。
ホスト:ドロップダウンリストからプロトコルを選択し、デプロイ済みの接続アドレスとポートを入力します。
- TLS上のMQTTを使用する場合は
mqtts://およびポート8883を選択します。 - TLS上のWebSocketを使用する場合は
wss://およびポート8084を選択します。
- TLS上のMQTTを使用する場合は
ユーザー名とパスワード:作成済みの認証情報を入力します。
SSL/TLS:トグルスイッチをクリックしてSSL/TLSを有効にします。
SSLセキュア:トグルスイッチをクリックしてSSLセキュアを有効にします。
証明書:必要に応じて証明書を選択します。
- CA署名済みサーバー証明書を選択します。双方向TLSの場合はクライアント証明書ファイルとクライアント鍵ファイルも入力が必要です。
接続をクリックします。

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