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

ApsaraMQ for MQTT:サーバー証明書の管理

最終更新日:Aug 21, 2026

サーバー証明書は、クライアントがサーバーを認証するために使用されます。サーバー証明書を購入または発行し、Alibaba Cloud 証明書管理サービスでホストする必要があります。このトピックでは、サーバー証明書の生成方法と使用方法について説明します。

サーバー証明書のワークフロー

image

制限事項

Platinum Edition および Professional Edition のインスタンスのみが、サーバー証明書管理機能をサポートします。

前提条件

  • CA 証明書を取得済みです。

  • OpenSSL v1.1.1i 以降がインストールされています。

ステップ 1: CA 証明書を使用したサーバー証明書の発行

信頼できる認証局 (CA) からサーバー証明書を購入するか、独自の CA 証明書を使用してサーバー証明書を発行できます。CA 証明書の取得に関する詳細については、「自己署名 CA 証明書」をご参照ください。

RSA アルゴリズム証明書

  1. OpenSSL のインストールパスに設定ファイルを作成します。

    1. 次の内容で server.csr.cfg という名前のファイルを作成します:

      説明

      必要に応じて [dn] セクションを設定します。

      [req]
      default_bits = 2048
      prompt = no
      default_md = sha256
      distinguished_name = dn
      
      [dn]
      C=CN
      ST=ZJ
      L=HZ
      O=ALI
      OU=MQTT
      emailAddress=xxx@xxx
      CN=mqtt-test.xxx.aliyuncs.com
    2. 次の内容で server.crt.cfg という名前のファイルを作成します。

      説明
      • [alt_names] にカスタムドメイン名を入力できます。カスタムドメイン名を使用する場合、カスタムドメイン名を ApsaraMQ for MQTT サービスによって提供されるドメイン名に対応付ける CNAME レコードを作成する必要があります。

      • カスタムドメイン名を使用しない場合は、[alt_names] を ApsaraMQ for MQTT が提供するドメイン名に設定します。 例: DNS.2=mqtt-test.cn-qingdao.aliyuncs.com。

      • 複数のリージョンにある異なるインスタンスで同じサーバー証明書を使用するには、ドメイン名にワイルドカード文字を使用できます。例:DNS.1=*.mqtt.aliyuncs.com。

      authorityKeyIdentifier=keyid,issuer
      basicConstraints=CA:FALSE
      keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyCertSign
      extendedKeyUsage = serverAuth, clientAuth
      subjectAltName = @alt_names
      
      [alt_names]
      DNS.1=*.mqtt.aliyuncs.com
      DNS.2=mqtt-test.cn-qingdao.aliyuncs.com
  2. 次のコマンドを実行して、サーバー証明書の秘密鍵と証明書署名リクエスト (CSR) ファイルを生成します。

    • Mac:

      openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config <(cat server.csr.cfg)
    • Windows:

      openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config server.csr.cfg
  3. 次のコマンドを実行して、サーバー証明書の秘密鍵を PKCS#8 フォーマットに変換します。

    openssl pkcs8 -topk8 -nocrypt -in server.key -out server_pkcs8.key

    変換されたプライベートキーは server_pkcs8.key です。cat server_pkcs8.key コマンドを実行して表示できます。以下に例を示します。

    重要

    「ステップ 2: サーバー証明書のホスト」の操作を実行する際は、このステップで生成されたサーバーの秘密鍵をアップロードする必要があります。

    -----BEGIN PRIVATE KEY-----
    MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALaDOET1McZD0hV/
    ma1YlSZjim00rVwrdXefqOHXWEqm8/HxZ3iWmKN/jGWW1aAoYFRAg0CNar1eDap4
    *****
    *****
    *****
    PLX2WlXAXggKZvpozkig/J6klAN8pVvwM4BPgJDLk+hllM8MowOxlNjoHsI34lAQ
    g17SUS1ERIK+
    -----END PRIVATE KEY-----
  4. 次のコマンドを実行して、サーバー証明書を生成します。

    openssl x509 -req -in server.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile server.crt.cfg

    生成されたサーバー証明書はserver.crtとなります。

  5. 次のコマンドを実行して、サーバー証明書チェーンを生成します。

    1. server_chain.crt という名前の空の証明書チェーンファイルを作成します。

      touch server_chain.crt
    2. サーバー証明書の内容を証明書チェーンファイルにコピーします。

      cat server.crt >> server_chain.crt
    3. CA 証明書の内容をコピーし、証明書チェーンファイル内のサーバー証明書の内容の後に追加します。

      cat CA.crt >> server_chain.crt

    cat server_chain.crt コマンドを実行すると、サーバー証明書チェーンを表示できます。証明書チェーンの内容は、次の形式で表示されます。

    重要

    「ステップ 2: サーバー証明書のホスト」の操作を実行する際は、このステップで生成されたサーバー証明書チェーンをアップロードする必要があります。

    -----BEGIN CERTIFICATE-----
    xxx
    サーバー証明書の内容
    xxx
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    xxx
    CA 証明書の内容
    xxx
    -----END CERTIFICATE-----

ECC アルゴリズム証明書

  1. OpenSSL のインストールパスに設定ファイルを作成します。

    1. 次の内容で server.csr.cfg という名前のファイルを作成します:

      説明

      必要に応じて [dn] セクションに入力します。

      [req]
      prompt = no
      default_md = sha256
      distinguished_name = dn
      
      [dn]
      C=CN
      ST=ZJ
      L=HZ
      O=ALI
      OU=MQTT
      emailAddress=xxx@xxx
      CN=mqtt-test.xxx.aliyuncs.com
    2. 次の内容でserver.crt.cfgという名前のファイルを作成します。

      説明
      • [alt_names] にカスタムドメイン名を入力できます。 カスタムドメイン名を使用する場合は、CNAME レコードを作成して、そのカスタムドメイン名を ApsaraMQ for MQTT サービスが提供するドメイン名にマップする必要があります。

      • カスタムドメイン名を使用しない場合は、[alt_names] を ApsaraMQ for MQTT が提供するドメイン名に設定します。例: DNS.2=mqtt-test.cn-qingdao.aliyuncs.com。

      • 複数のリージョンにある異なるインスタンスで同じサーバー証明書を使用するには、ドメイン名にワイルドカード文字を使用できます。例:DNS.1=*.mqtt.aliyuncs.com。

      authorityKeyIdentifier=keyid,issuer
      basicConstraints=CA:FALSE
      keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyCertSign
      extendedKeyUsage = serverAuth, clientAuth
      subjectAltName = @alt_names
      
      [alt_names]
      DNS.1=*.mqtt.aliyuncs.com
      DNS.2=mqtt-test.cn-qingdao.aliyuncs.com
  2. サーバー証明書の秘密鍵 (server.key) の生成

    openssl ecparam -out server.key -name prime256v1 -genkey
  3. サーバー証明書の server.csr ファイルの生成

    • Mac:

      openssl req -new -sha256 -nodes -out server.csr -key server.key -config <(cat server.csr.cfg)
    • Windows:

      openssl req -new -sha256 -nodes -out server.csr -key server.key -config server.csr.cfg
  4. CA 証明書からのサーバー証明書の発行

    openssl x509 -req -in server.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile server.crt.cfg
  5. 次のコマンドを実行して、サーバー証明書の秘密鍵を PKCS#8 形式に変換します。変換後の秘密鍵の名前は server_pkcs8.key です。

    openssl pkcs8 -topk8 -nocrypt -in server.key -out server_pkcs8.key
    重要

    「ステップ 2: サーバー証明書のホスト」の操作を実行する際は、このステップで生成されたサーバーの秘密鍵をアップロードする必要があります。

  6. 次のコマンドを実行して、サーバー証明書チェーンを生成します。

    1. server_chain.crtという名前の空の証明書チェーンファイルを作成します。

      touch server_chain.crt
    2. サーバー証明書の内容を証明書チェーンファイルにコピーします。

      cat server.crt >> server_chain.crt
    3. CA 証明書の内容をコピーし、証明書チェーンファイル内のサーバー証明書の内容の後に追加します。

      cat CA.crt >> server_chain.crt
    重要

    「ステップ 2: サーバー証明書のホスト」の操作を実行する際は、このステップで生成されたサーバー証明書チェーンをアップロードする必要があります。

ステップ 2: サーバー証明書のホスト

発行されたサーバー証明書を [Alibaba Cloud 証明書管理サービスコンソール] で保管します。証明書を保管すると、[ApsaraMQ for MQTT コンソール] で証明書を表示して有効化できます。

説明
  • サーバー証明書は、RSA および ECC アルゴリズムをサポートしています。

  • カスタムドメイン名を使用するには、証明書にドメイン名を追加し、ApsaraMQ for MQTT インスタンスのエンドポイントを指す CNAME レコードを作成できます。

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

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

  3. 左側メニューで、証明書の管理 > サーバー証明書 を選択します。次に、ページの左上隅にある 証明書の作成 をクリックします。

    自動的に Alibaba Cloud 証明書管理サービスコンソール の [SSL 証明書管理] ページにリダイレクトされます。

  4. [SSL 証明書管理] ページで、[証明書のアップロード] をクリックします。 表示される [証明書のアップロード] パネルで、パラメーターを指定して [OK] をクリックします。

    • [Certificate Standard]: [International Standard] を選択します。

    • [証明書ファイル]: ステップ 1: CA 証明書を使用してサーバー証明書を発行するで生成したサーバー証明書チェーンファイル server_chain.crt をアップロードするか、証明書チェーンの内容をテキストボックスに貼り付けます。

    • [証明書の秘密鍵]:ステップ 1: CA 証明書を使用してサーバー証明書を発行するで生成した変換済みの秘密鍵ファイル server_pkcs8.key をアップロードするか、秘密鍵の内容をテキストボックスに貼り付けます。

    • [Certificate Chain]: このパラメーターには、証明書チェーンファイルをアップロードしたり、証明書チェーンの内容を入力したりしないでください。そうしないと、証明書の認証が失敗します。

ステップ 3: サーバー証明書を使用したサービスの起動

警告

サーバー証明書を使用してサービスを起動すると、起動中にクライアントが切断されます。注意して実行してください。

不正な証明書を使用すると、サービスが一時的に利用できなくなります。

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

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

  3. 左側メニューで、証明書の管理 > サーバー証明書 を選択します。

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

    • サービスを開始すると、ApsaraMQ for MQTT インスタンスが再起動します。 再起動には約 5~10 分かかります。 再起動後、クライアントはサーバー証明書をサーバー側の認証に使用できます。

    • サービスが起動すると、ポート 8883 で相互認証が有効になり、一方向認証は無効になります。

  5. 表示されたダイアログボックスで、メッセージをよくお読みいただき、OK をクリックします。

説明

一方向認証に戻す場合は、単方向認証 をクリックします。表示されるダイアログボックスで、OK をクリックし、サーバーが再起動するのを待ちます。