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

Server Load Balancer:1つのCLBインスタンスにおける複数ドメインのHTTPS Webサイト設定

最終更新日:Jul 28, 2026

このトピックでは、クラシックロードバランサー (CLB) インスタンス上の 1 つのリスナーを設定し、異なるドメイン名宛ての HTTPS リクエストを異なるバックエンドサーバーへルーティングする方法について説明します。これにより、複数の HTTPS Web サイトをホストできます。

例

CLB インスタンスは HTTPS リクエスト内のドメイン名を検査し、一致する証明書を選択して認証を完了した後、転送ルールに基づいてリクエストを適切なバックエンドサーバーへ転送します。

このトピックでは、次の設定を例として使用します。

  • リスナーのデフォルト証明書 default は、ドメイン名 aliyundoc.com に関連付けられています。デフォルトサーバーグループは RS1 です。

  • 追加証明書 example1 は、ドメイン名 www.example.com に関連付けられています。https://www.example.com へのリクエストは、サーバーグループ RS1 にルーティングされます。

  • もう 1 つの追加証明書 example2 は、ドメイン名 www.example.org に関連付けられています。https://www.example.org へのリクエストは、サーバーグループ RS2 にルーティングされます。

image

前提条件

  • CLB インスタンスが作成済みであること。詳細については、「Create and manage a CLB instance」をご参照ください。

  • 2 つの vServer グループ (RS1 と RS2) が作成済みであること。詳細については、「Create and manage a vServer group」をご参照ください。

  • RS1 に ECS インスタンス (ECS01) を追加し、RS2 に別の ECS インスタンス (ECS02) を追加済みであること。ECS01 と ECS02 の両方にアプリケーションサービスがデプロイ済みであること。

  • ドメイン名を登録し、ICP 登録を完了していること。詳細については、「Register a domain name on Alibaba Cloud」および「ICP filing process」をご参照ください。

  • サードパーティプロバイダーから証明書を購入またはアップロードして Certificate Management Service に取り込み、それぞれのドメイン名にバインドする必要があります。詳細については、「Enable HTTPS access for a web-based service by using an official certificate」をご参照ください。このトピックでは、次の証明書が必要です。

    • ドメイン名 aliyundoc.com にバインドされた、default という名前のデフォルト証明書。

    • ドメイン名 www.example.com にバインドされた、example1 という名前の証明書。

    • ドメイン名 www.example.org にバインドされた、example2 という名前の証明書。

    説明

    証明書は、使用する前に CLB インスタンスへデプロイする必要があります。詳細については、「Create a certificate」をご参照ください。

ステップ1:HTTPSリスナーの追加

  1. CLB コンソールにログインします。

  2. 上部メニューで、CLB インスタンスが存在するリージョンを選択します。

  3. インスタンス管理 ページで対象の CLB インスタンスを見つけ、操作 列で リスナーの設定 をクリックします。

  4. プロトコルとリスナー タブで次のパラメーターを設定し、次へ をクリックします。

    このトピックでは、必須パラメーターのみを説明します。その他のパラメーターはデフォルト値のままにするか、必要に応じて設定してください。

    • リスナープロトコルの選択:HTTPS を選択します。

    • リスナーポート:ポートを 443 に設定します。

  5. SSL 証明書 タブで、アップロード済みのサーバー証明書を選択し、次へ をクリックします。この例では、default 証明書を選択します。

  6. バックエンド サーバー タブで VServer Group を選択し、サーバーグループ ドロップダウンリストから RS1 を選択します。

  7. その他のパラメーターはデフォルト値のままにし、確認ステップに到達するまで 次へ をクリックします。最後に 送信 をクリックします。

ステップ2:拡張ドメインの追加

  1. インスタンス管理 ページで対象の CLB インスタンスを見つけ、対象インスタンス ID をクリックします。

  2. リスナー タブで、作成した HTTPS リスナーを見つけます。操作 列で More アイコンをクリックし、ドメイン拡張子の管理 を選択します。

  3. ドメイン拡張子の管理 パネルで ドメイン拡張子の追加 をクリックします。

    1. 追加の証明書 に www.example.com を入力します。サーバー証明書の選択 ドロップダウンリストから www.example.com に関連付けられた証明書を選択し、OK をクリックします。

    2. 追加の証明書 に www.example.org を入力します。サーバー証明書の選択 ドロップダウンリストから www.example.org に関連付けられた証明書を選択し、OK をクリックします。

    説明

    証明書内のドメイン名が、追加する拡張ドメインと完全に一致していることを確認してください。

    説明

    拡張ドメインを追加する際は、次の制限事項に注意してください。

    • ワイルドカードドメイン名は SNI マッチングをサポートしません。*.example.com などのワイルドカード拡張ドメインは、TLS ハンドシェイク中に SNI 経由でマッチングできません。クライアントが SNI フィールドにサブドメイン名を指定した場合、CLB はワイルドカードの拡張ドメインを使用して対応する証明書を選択できません。拡張ドメインには、www.example.com などの完全一致ドメイン名を使用してください。

    • 転送ルールが必要です。拡張ドメインは転送ルールと併用する必要があります。ステップ3で対応する転送ルールを設定せずに拡張ドメインだけを追加した場合、SNI は有効にならず、CLB はデフォルト証明書を使用してリクエストを処理します。

    • デフォルト証明書へのフォールバック。HTTPS リクエストがいずれの拡張ドメインにも一致しない場合、CLB はデフォルト証明書を使用してリクエストを処理します。これは想定どおりの動作です。

    • 期限切れ証明書のフォールバック。拡張ドメインに関連付けられたサーバー証明書の有効期限が切れると、CLB は期限切れ証明書に対する SNI マッチングロジックを自動的にスキップします。クライアントの SNI フィールド内のドメイン名が期限切れ証明書のドメインと完全に一致していても、CLB は期限切れ証明書を使用せず、HTTPS リスナーに設定されたデフォルト証明書へフォールバックします。これにより、想定していたドメイン固有の証明書ではなくデフォルト証明書が返され、SSL/TLS 証明書の不一致警告が表示される場合があります。サービス中断を防ぐため、拡張ドメイン用の証明書は期限切れ前に更新してください。

ステップ3:転送ルールの設定

  1. インスタンス管理 ページで対象の CLB インスタンスの ID をクリックします。

  2. リスナー タブでリスナーを見つけ、操作 列で 転送ルールの設定 をクリックします。

  3. ルール パネルで、転送ルールを追加します。

    この例では、ドメイン名ベースの転送ルールのみを設定します。URL 設定は行いません。

    1. ドメイン 列に www.example.com を入力し、vServer グループ RS1 を選択してから、さらに追加 をクリックします。

    2. ドメイン 列に www.example.org を入力し、vServer グループ RS2 を選択してから、さらに追加 をクリックします。

  4. 転送ルールを設定したら、ルール パネルを閉じます。

ステップ4:名前解決の設定

www.example.com と www.example.org の A レコードを追加し、CLB インスタンスのパブリック IP アドレスを指すように設定します。

  1. CLB コンソールにログインします。

  2. 上部メニューでリージョンを選択します。

  3. 名前解決に使用する CLB インスタンスを選択し、対応するパブリック IP アドレスをコピーします。

  4. A レコードを追加するには、次の手順を実行します。

    1. Alibaba Cloud DNS コンソールにログインします。

    2. インターネットの権威ある DNS 解決 ページで ドメイン名の追加 をクリックします。

    3. ドメイン名の追加 ダイアログボックスでドメイン名を入力し、OK をクリックします。

      重要

      TXT レコードを使用してドメインの所有権を検証してください。

    4. 管理するドメイン名を見つけ、Actions 列で 解決設定 をクリックします。

    5. 解決設定 ページで Add Record をクリックします。

    6. Add Record パネルで次のパラメーターを設定して A レコードを追加し、OK をクリックします。

      パラメーター

      説明

      [レコードタイプ]

      ドロップダウンリストから [A] を選択します。

      [ホストレコード]

      ドメイン名のプレフィックスです。

      [Query Source]

      [Default] を選択します。

      [レコード値]

      レコード値には、コピーした CLB インスタンスのパブリック IP アドレスを指定します。

      TTL

      Time to Live (TTL)。DNS レコードが DNS サーバーにキャッシュされる時間を指定します。この例ではデフォルト値を使用します。

ステップ5:結果の確認

設定完了後、ブラウザで https://www.example.com と https://www.example.org を入力し、転送ルールが正しく機能することを確認します。この例では、各バックエンドサーバーにシンプルな静的ウェブページがデプロイされていることを前提としています。

  • ブラウザで https://www.example.com を入力します。リクエストはサーバーグループ RS1 の ECS01 にルーティングされます。ページには Hello World ! This is ECS01. と表示されます。

  • ブラウザで https://www.example.org を入力します。リクエストはサーバーグループ RS2 の ECS02 にルーティングされます。ページには Hello World ! This is ECS02. と表示されます。

説明

テストが失敗した場合は、ブラウザキャッシュをクリアして再度テストしてみてください。

よくある質問

Q:拡張ドメインを設定した後も、HTTPS リクエストでデフォルト証明書が返されます。どのように切り分ければよいですか?

  1. 完全一致ドメイン名を使用しているか確認してください。*.example.com などのワイルドカードドメイン名は、CLB での自動 SNI マッチングをサポートしません。拡張ドメインには、www.example.com などの完全一致ドメイン名を使用してください。

  2. 転送ルールが設定されているか確認してください。拡張ドメインだけでは SNI は有効になりません。拡張ドメインごとに転送ルールも設定する必要があります。ステップ3「転送ルールの設定」を参照し、拡張ドメインに対する転送ルールが存在することを確認してください。

  3. 証明書のドメイン名が拡張ドメインと一致しているか確認してください。証明書内のドメイン名は、設定した拡張ドメインと完全に一致している必要があります。不一致があると、CLB はデフォルト証明書へフォールバックします。

  4. openssl を使用して SNI の動作を確認してください。次のコマンドを実行し、特定のドメイン名に対して CLB がどの証明書を返すか確認します。

    openssl s_client -connect <CLB_VIP>:443 -servername <domain_name>

    出力で、返された証明書の subject フィールドを確認します。subject に意図したドメイン名ではなくデフォルトのドメイン名が表示される場合は、拡張ドメインと転送ルールが正しく設定されていることを確認してください。

  5. コンソールで拡張ドメインの設定を確認してください。インスタンス管理 ページで対象の CLB インスタンス ID をクリックし、リスナー タブに移動します。HTTPS リスナーを見つけ、操作 列で More > [Manage Certificates] を選択して、デフォルト証明書と設定済みの拡張ドメインを確認します。ドメイン拡張子の管理 の一覧が空の場合は、拡張ドメインが設定されておらず、すべての HTTPS リクエストでリスナーのデフォルト証明書が使用されます。ステップ2に従い、各ドメインの拡張ドメインを追加し、対応するサーバー証明書をバインドしてください。

  6. API を使用して拡張ドメインの設定を確認してください。DescribeLoadBalancerHTTPSListenerAttribute API を呼び出して DomainExtensions フィールドを照会し、拡張ドメインの設定状況を確認します。レスポンスで DomainExtensions フィールドが {"DomainExtensions": {"DomainExtension": []}} のように返される場合は、拡張ドメインが設定されておらず、すべてのドメインリクエストでデフォルト証明書が使用されます。拡張ドメインが設定されている場合は、各エントリの Domain および ServerCertificateId フィールドが、想定するドメインと証明書に一致していることを確認してください。

  7. ワイルドカード証明書のマッチング制限を理解してください。拡張ドメインにバインドされたサーバー証明書がワイルドカード証明書 (バインドされたドメインが *.example.com 形式) の場合は、次の点に注意してください。同一の HTTPS リスナー配下で複数の拡張ドメインがワイルドカード証明書を使用している場合、SNI マッチングで自動的に使用されるのは最初のワイルドカード証明書のみです。残りの拡張ドメインは、完全一致ドメインの個別証明書をバインドする必要があります。そうしない場合、リスナーのデフォルト証明書が返されます。

関連ドキュメント