すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for MQTT:クライアントでの証明書ベースの認証

最終更新日:Mar 11, 2026

ApsaraMQ for MQTT は、X.509 証明書ベースの認証をサポートしており、TLS ハンドシェイク中にブローカーとクライアント間の ID を検証します。接続が確立される前に証明書が交換されるため、不正なアクセスを防ぐことができます。

モード検証インスタンス要件
一方向認証クライアントはサーバー証明書を使用してブローカーの ID を検証します。すべてのインスタンスタイプ
相互認証双方が互いを検証します。クライアントはサーバー証明書をチェックし、ブローカーはデバイス証明書をチェックします。Enterprise Platinum Edition のみ

一方向認証

一方向認証では、クライアントは TLS ハンドシェイク中にブローカーのサーバー証明書を検証します。クライアントが接続を開始すると、ブローカーは自動的にサーバー証明書を提示します。証明書の検証に成功すると、接続が確立されます。

一方向認証への切り替え

説明

この手順は、Enterprise Platinum Edition インスタンスにのみ適用されます。他のすべてのインスタンスタイプは、デフォルトで一方向認証をサポートしています。

  1. ApsaraMQ for MQTT コンソールにログインします。左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

  2. 上部のナビゲーションバーで、インスタンスが存在するリージョンを選択します。[インスタンス] ページで、インスタンス名をクリックして [インスタンス詳細] ページに移動します。

  3. 左側のナビゲーションウィンドウで、[証明書] > [サーバー証明書] を選択します。

  4. [一方向認証] をクリックします。確認メッセージを読み、[OK] をクリックします。ブローカーが再起動するまで待ちます。

サーバー証明書検証のサンプルコード

言語サンプルコード
Javamqtt.demo.java
Pythonmqtt.demo.python
Cmqtt.demo.c
.NETmqtt.demo.net
JavaScriptmqtt.demo.javascript
iOSmqtt.demo.ios

相互認証

相互認証は、検証レイヤーを追加します。クライアントがブローカーのサーバー証明書を検証することに加えて、ブローカーもクライアントのデバイス証明書を検証します。これにより、不正なデバイスがブローカーに接続するのを防ぎます。

説明

相互認証には Enterprise Platinum Edition インスタンスが必要です。

証明書タイプ

相互認証では、3 種類の証明書を使用します。

証明書役割管理
CA 証明書信頼のルート。サーバー証明書、デバイス証明書、検証証明書を発行します。ブローカーに登録します。
サーバー証明書ブローカーを識別します。Certificate Management Service でホストし、インスタンスを再起動して適用します。
デバイス証明書各クライアントを識別します。グローバルに一意である必要があります。初回接続時に自動登録されます。

仕組み

クライアントが接続すると、クライアントは TLS 1.2 に基づいてブローカーと対話します。ブローカーは、次のプロセスを通じてデバイス証明書を検証します。

Mutual authentication process
  1. クライアントは TCP 接続を開始し、MQTT プロトコルを介してデバイス証明書をブローカーに送信します。

  2. ブローカーは、デバイス証明書が登録されているかどうかを確認します。

    • 登録済み:ブローカーは証明書のステータスを確認します。有効化されている場合、ブローカーは証明書の検証に進みます (ステップ 5)。有効化されていない場合、接続は拒否されます。

    • 未登録:ブローカーはデバイス証明書を CA 証明書と照合しようとします (ステップ 3)。

  3. ブローカーは、デバイス証明書に対応する CA 証明書を検索します。

    • CA 証明書が見つかり、登録済み:ブローカーは CA 証明書のステータスを確認します (ステップ 4)。

    • CA 証明書が見つからない:接続は拒否されます。

  4. ブローカーは、CA 証明書が有効化されているかどうかを確認します。

    • 有効化済み:ブローカーはデバイス証明書の検証に進みます (ステップ 5)。

    • 有効化されていない:接続は拒否されます。

  5. ブローカーは、登録済みの CA 証明書に対してデバイス証明書を検証します。

    • 検証に成功した場合:クライアントが認証されます (ステップ 6)。

    • 検証に失敗した場合:接続は拒否されます。

  6. 認証が成功します。クライアントは接続し、メッセージの送受信を開始できます。

説明

初回接続時、ブローカーは自動的にデバイス証明書を対応する CA 証明書と照合して登録します。その後の接続では、CA の照合ステップをスキップし、デバイス証明書を直接検証します。

相互認証の設定

相互認証は 3 つのステップで設定します。

ステップ 1:CA 証明書をブローカーに登録します。

認証局 (CA) に申請するか、独自に作成して CA 証明書を取得します。次に、それを ApsaraMQ for MQTT ブローカーに登録します。CA 証明書は、デバイス証明書、サーバー証明書、および検証証明書を発行できます。

詳細については、「CA 証明書の管理」をご参照ください。

ステップ 2:サーバー証明書を発行してデプロイします。

CA 証明書からサーバー証明書を発行し、それを Certificate Management Service でホストし、ApsaraMQ for MQTT インスタンスを再起動して証明書を有効にします。

詳細については、「サーバー証明書の管理」をご参照ください。

ステップ 3:デバイス証明書を発行します。

CA 証明書からデバイス証明書を発行します。各デバイス証明書はグローバルに一意である必要があります。使用する前に、デバイス証明書をブローカーに登録します。

  • 初回接続時、ブローカーは自動的にデバイス証明書を対応する CA 証明書と照合して登録します。その後の接続では、CA の照合ステップをスキップし、デバイス証明書を直接検証します。

詳細については、「CA 証明書を使用してデバイス証明書を発行する」をご参照ください。

デバイス証明書検証のサンプルコード

言語サンプルコード
Javamqtt.bissl.demo.java
Pythonmqtt.ssl.mode.demo.python
Cmqtt.ssl.demo.c
.NETmqtt.ssl.mode.demo.net
JavaScriptmqtt.ssl.demo.javascript
iOSmmqtt.ssl.demo.ios

API オペレーション

CA 証明書の管理

デバイス証明書の管理

コンソール操作

  • 購入または自己発行したサーバー証明書を Certificate Management Service でホストし、それを使用して ApsaraMQ for MQTT インスタンスを初期化します。詳細については、「サーバー証明書の管理」をご参照ください。

  • CA 証明書の登録、有効化、無効化、または削除を行います。詳細については、「CA 証明書の管理」をご参照ください。

  • デバイス証明書の照会、有効化、無効化、または削除を行います。詳細については、「デバイス証明書の管理」をご参照ください。