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

ApsaraMQ for MQTT:マルチドメイン証明書を構成する

最終更新日:Aug 02, 2025

ApsaraMQ for MQTT では、マルチドメイン証明書を構成できます。このトピックでは、マルチドメイン証明書を構成する方法について説明します。

シナリオ

CNAME レコードを使用して複数のカスタムドメイン名を ApsaraMQ for MQTT インスタンスのドメイン名にマッピングする場合、インスタンスへのアクセスに使用する際に、カスタムドメイン名ごとに異なるサーバー証明書を構成する必要があります。

前提条件

  • ApsaraMQ for MQTT Enterprise Platinum エディションインスタンスが作成されていること。このエディションのインスタンスのみがこの機能をサポートしています。

  • CNAME レコードを使用して、複数のドメイン名が ApsaraMQ for MQTT インスタンスのドメイン名にマッピングされていること。詳細については、「CNAME レコード」をご参照ください。

  • ApsaraMQ for MQTT インスタンスで相互認証が有効になっており、複数のサーバー証明書がアップロードされていること。サーバー証明書の詳細については、「サーバー証明書を管理する」をご参照ください。

手順

ステップ 1:サーバー証明書を使用してサービスを開始する

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

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

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

  4. 相互認証 タブをクリックします。表示されるダイアログボックスで、サーバー証明書を選択し、サービスの開始Actions 列でクリックします。

    • [サービスを有効にする] をクリックすると、ApsaraMQ for MQTT インスタンスが再起動されます。再起動には約 5 ~ 10 分かかります。インスタンスが再起動されると、クライアントはサーバー証明書を使用してブローカーを認証できます。

    • ApsaraMQ for MQTT を有効にすると、ポート 8883 で相互認証が有効になり、一方向認証が無効になります。

  5. 表示されるメッセージで注意事項を読み、OK をクリックします。

ステップ 2:API 呼び出しを行い、マルチドメイン証明書を構成する

  • API 操作

    OpenAPI エクスプローラー は署名値を自動的に計算します。便宜上、OpenAPI エクスプローラーでこの操作を呼び出すことをお勧めします。 OpenAPI エクスプローラーは、さまざまな SDK の操作のサンプルコードを動的に生成します。

  • リクエストパラメーター

    パラメーター

    タイプ

    必須

    説明

    MqttInstanceId

    string

    はい

    ApsaraMQ for MQTT インスタンスの ID。

    mqtt-cn-xxxxxx

    DefaultCertificate

    string

    はい

    デフォルト証明書の ID。

    アクセスするドメイン名がブローカーの証明書と一致しない場合、デフォルト証明書が返されます。

    15xxxxxx-cn-hangzhou

    SniConfig

    string

    はい

    サーバー名表示 (SNI) の構成。このパラメーターは、ドメイン名と証明書をマッピングするために使用されます。

    ドメイン名 A の証明書が A1 で、ドメイン名 B の証明書が B2 の場合、このパラメーターの値は ドメイン名 A#A1 の ID#A1 のパスワード (オプション);ドメイン名 B#B1 の ID#B1 のパスワード (オプション) 形式になります。

    mqtt-test001.aliyuncs.com#15xxxxx-cn-hangzhou;mqtt-test002.aliyuncs.com#16xxxxx-cn-hangzhou

    SniConfig パラメーターの値に含まれる証明書 ID とドメイン名は、ApsaraMQ for MQTT コンソールで取得できます。この例では、mqtt-test001.aliyuncs.com および mqtt-test002.aliyuncs.com テストドメイン名を使用しています。

    image

  • レスポンスパラメーター

    Successtrue が返された場合、構成は成功です。 Successfalse が返された場合、構成は失敗です。

    {
      "RequestId": "9B5505EB-D2F3-5258-886D-**********",
      "Success": "true"
    }

ステップ 3:マルチドメイン証明書をローカルで検証する

  1. hosts ファイルを変更して、複数のドメイン名にアクセスします。 xxx.xxx.xxx.xxx は、ApsaraMQ for MQTT インスタンスのエンドポイントの IP アドレスを示します。

    #	127.0.0.1       localhost
    #	::1             localhost
    
    xxx.xxx.xxx.xxx mqtt-test001.aliyuncs.com
    xxx.xxx.xxx.xxx mqtt-test002.aliyuncs.com
  2. サンプルコードを使用して、メッセージが想定どおりに送信されるかどうかをテストし、マルチドメイン証明書が構成されているかどうかを検証します。

    サンプルコード mqtt-demo をダウンロードし、MQ4IoTBiSSLProducerDemo.java クラスのパラメーターを置き換えてから、コードを実行してメッセージが想定どおりに送信されるかどうかをテストします。

    説明
    • サンプルコードを使用する前に、MQTT_AK_ENV および MQTT_SK_ENV 環境変数を構成する必要があります。これらの変数の構成方法については、「アクセス認証情報を構成する」をご参照ください。

    • コードで使用するトピックとグループを事前に作成する必要があります。

    • コード内の endPoint パラメーターを、テスト用に hosts ファイルで構成されている mqtt-test001.aliyuncs.com または mqtt-test002.aliyuncs.com に置き換えます。

    複数のドメイン名を使用してそれぞれコードを実行した後に次の結果が返された場合、マルチドメイン証明書は有効になります。

    connect success
    send msg succeed topic is : topic/testMq4Iot
    send msg succeed topic is : topic/p2p/xxx

    パケットキャプチャツールを使用して、返された証明書が SNI 構成と一致するかどうかを確認することもできます。次の図は、mqtt-test002.aliyuncs.com にアクセスしたときに返された証明書を示しています。

    image