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

Server Load Balancer:CLBを使用してリクエストをHTTPからHTTPSにリダイレクトする

最終更新日:Dec 20, 2024

HTTPSは、データ送信の暗号化に使用されるプロトコルです。 HTTPSにアップグレードした後、Classic Load Balancer (CLB) を使用してHTTPからHTTPSにリクエストをリダイレクトできます。 HTTPからHTTPSへのリダイレクトはユーザーに対して透過的であり、ユーザーアクセスを容易にします。 このトピックでは、CLBを使用してHTTPからHTTPSにリクエストをリダイレクトする方法について説明します。

主な機能

  • スムーズなリダイレクト: HTTPからHTTPSへのリダイレクトはユーザーに対して透過的であり、ユーザーエクスペリエンスを低下させません。

  • 負荷の軽減: バックエンドサーバーはリダイレクトロジックを処理する必要がなく、主要なビジネスロジックに集中できます。 これにより、バックエンドサーバーの作業効率が向上します。

シナリオ

  • HTTPSアップグレード: 既存のWebサイトまたはアプリケーションをHTTPからHTTPSにアップグレードして、ユーザーとサーバー間の通信セキュリティを向上させます。

  • ドメイン名の変更またはWebサイトの移行: Webサイトが別のドメイン名に移行された場合、リダイレクトによりユーザーアクセスが中断されません。

例:

Alibaba CloudのリージョンでCLBインスタンスを作成し、そのCLBインスタンスのHTTPリスナーを設定しました。 データ送信のセキュリティを向上させるために、同社はWebサイトをHTTPSにアップグレードしたいと考えています。 アップグレード中のサービスの中断やアクセスの失敗を防ぐために、同社はCLBを使用してHTTPからHTTPSにリクエストをリダイレクトします。 Webサイトは、サービスセキュリティを維持しながらHTTPからHTTPSにアップグレードされます。

image

注意事項

  • HTTPからHTTPSへのリダイレクトは、すべてのリージョンのCLBで使用できます。

  • HTTPからHTTPSへのリダイレクトを設定するには、HTTPリスナーとHTTPSリスナーが同じCLBインスタンスに関連付けられていることを確認します。

  • リスナーを作成するときに、CLBインスタンスのHTTPリスナーのリダイレクション機能を有効にする必要があります。 既存のHTTPリスナーに対してこの機能を有効にすることはできません。

前提条件

  • バックエンドサーバーECS01およびECS02が作成され、アプリケーションがECS01およびECS02にデプロイされます。 この例では、バックエンドサーバーは64ビットAlibaba Cloud Linux 3.2104 LTSオペレーティングシステムを使用します。 詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。

    ECSインスタンスにテストアプリケーションをデプロイするためのサンプルコマンド

    ECS01にテストアプリケーションをデプロイするためのコマンド:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World !  This is ECS01." > index.html

    テストアプリケーションをECS02にデプロイするためのコマンド:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World !  This is ECS02." > index.html
  • CLBインスタンスが作成されました。 この例では、インターネットに接続するCLBインスタンスが使用されています。 詳細については、「CLBインスタンスの作成と管理」をご参照ください。

  • 必要な証明書がデプロイされます。 証明書をサードパーティのサービスプロバイダーから購入した場合は、証明書を証明書管理サービスにアップロードする必要があります。 証明書がドメイン名に関連付けられていることを確認します。 詳細については、「証明書管理サービスの使用を開始する」をご参照ください。

手順

手順1: HTTPSリスナーの作成

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

  2. 上部のナビゲーションバーで、CLBインスタンスがデプロイされているリージョンを選択します。

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

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

    次のセクションでは、このトピックに関連するパラメーターのみについて説明します。 その他のパラメーターについては、デフォルト値を使用します。 その他のパラメーターの詳細については、「HTTPSリスナーの追加」をご参照ください。

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

    • リスナーポート: この例では、ポート443が使用されます。

  5. [証明書管理サービス] ステップで、サーバー証明書を選択するか、[サーバー証明書] ドロップダウンリストの [サーバー証明書の作成] をクリックします。 他のパラメーターのデフォルト値を保持し、[次へ] をクリックします。

  6. バックエンドサーバーステップで、バックエンドサーバーを選択します。 この例では、バックエンドサーバーがデフォルトのサーバーグループに追加されます。

    1. [デフォルトサーバーグループ] を選択し、[さらに追加] をクリックします。

    2. [サーバー] パネルで、ECS1とECS2を選択し、[次へ] をクリックします。

    3. [ポート /重み] ステップで、ECS01とECS02の重みを指定し、[追加] をクリックします。

    4. ECS01とECS02のポートを指定し、[次へ] をクリックします。 この例では、ECS01とECS02はポート80を使用します。

  7. [ヘルスチェック] ステップで、デフォルトのパラメーター値を保持し、[次へ] をクリックします。

  8. [確認] ステップで、リスナーの設定を確認し、[送信] をクリックします。 設定が完了したら、表示されるメッセージで [OK] をクリックします。

手順2: HTTPリスナーの転送ルールの設定

  1. [リスナー] タブで、[リスナーの追加] をクリックします。

  2. [プロトコルとリスナー] ステップで、パラメーターを設定し、[次へ] をクリックします。 次の表に、パラメーターを示します。

    パラメーター

    説明

    リスナープロトコルの選択

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

    この例では、HTTPが選択されています。

    リスナーポート

    バックエンドサーバーへのリクエストの受信と転送に使用するリスナーポートを指定します。

    この例では、ポート80が使用される。

    詳細設定

    詳細設定の横にある [変更] をクリックして、詳細設定を設定できます。

    この例では、Redirection by Listenerパラメーターのみが変更されています。 デフォルト設定は、他のパラメータに対して保持されます。

    リスナーによるリダイレクト

    HTTPリスナーからHTTPSリスナーにトラフィックをリダイレクトするかどうかを指定します。

    この例では、[リスナーによるリダイレクト] がオンになっており、[手順1: HTTPSリスナーの作成] で作成したHTTPSリスナーにリスナーが設定されています。

  3. [確認] ステップで、[送信] をクリックします。 設定が完了したら、[OK] をクリックします。

これにより、HTTPリスナーのポート80のすべてのHTTPリクエストは、HTTPSリスナーのポート443にリダイレクトされ、HTTPSリスナーの設定に基づいて転送されます。

手順3: Aレコードの設定

説明
  • Alibaba Cloudに登録されていないドメインの場合、DNSレコードを作成する前に、まずAlibaba Cloud DNSにドメイン名を追加する必要があります。

  • CLBインスタンスが内部対応の場合、最初にElastic IPアドレス (EIP) を関連付けてから、インターネットアクセス用にドメイン名をEIPにマップするAレコードを作成する必要があります。

  1. 左側のナビゲーションウィンドウで、[CLB] > [インスタンス] を選択します。

  2. [インスタンス] ページで、管理するCLBインスタンスを見つけ、CLBインスタンスのエンドポイントをコピーします。

  3. Aレコードを作成するには、次の手順を実行します。

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

    2. [権限のあるDNS解決] ページで、管理するドメイン名を見つけ、[操作] 列の [DNS設定] をクリックします。

    3. [DNS設定] ページで、[DNSレコードの追加] をクリックします。

    4. [DNSレコードの追加] パネルで、次のパラメーターを設定し、他のすべてのパラメーターにデフォルト値を使用するか、実際の条件に基づいて設定し、[OK] をクリックします。

      パラメーター

      説明

      レコードタイプ

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

      ホスト名

      ドメイン名のプレフィックス。 この例では、wwwが入力される。

      説明

      ルートドメイン名を使用する場合は、@ と入力します。

      レコード値

      ドメイン名に対応するAアドレスを入力します。 この例では、CLBインスタンスのIPアドレスが使用されます。

ステップ4: Verify the result

インターネットにアクセスできるクライアントを使用して、CLBインスタンスに送信されたHTTPリクエストをHTTPSにリダイレクトできるかどうかをテストします。

  1. クライアントのCLIを開きます。

  2. 次のコマンドを実行します。curl -v http:// <CLBインスタンスのドメイン名> 。 次の図に示すように、HTTP 302ステータスコードは、CLBインスタンスに送信されたリクエストがHTTPSにリダイレクトされることを示します。

    image

HTTPリダイレクトステータスコード

次の表に、CLBでサポートされているHTTPリダイレクトステータスコードを示します。

HTTPステータスコード

説明

302

このステータスコードは一時的なリダイレクトを示します。 要求されたリソースは一時的に再配置されます。 クライアントは元のURLにアクセスし続けることができます。

よくある質問

Redirection by Listenerパラメーターが表示されないのはなぜですか?

Redirection by Listenerパラメーターは、CLBインスタンスの既存のHTTPリスナーには使用できません。 このパラメーターは、HTTPリスナーを作成する場合にのみ使用できます。

関連ドキュメント

CLBは、リスナールールに基づいてリダイレクトを実行します。 Application Load Balancer (ALB) は、アプリケーションレイヤーでHTTPからHTTPSへのリダイレクトを実行し、より柔軟な機能と設定をサポートします。 たとえば、URLまたはリクエストヘッダーに基づいてリダイレクトを設定できます。 詳細については、「HTTPリクエストをHTTPSリスナーにリダイレクトする」をご参照ください。