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

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

最終更新日:Sep 18, 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インスタンスに関連付けられていることを確認します。

前提条件

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

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

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

    yum install -y nginx
    systemctlがnginx.serviceを開始
    cd /usr/share/nginx/html /
    エコー "ハローワールド!  これはECS01です。"> index.html 

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

    yum install -y nginx
    systemctlがnginx.serviceを開始
    cd /usr/share/nginx/html /
    エコー "ハローワールド!  これはECS02 "> index.html 
  • CLBインスタンスが作成されました。 この例では、インターネットに接続するCLBインスタンスが使用されています。 詳細については、「SLB インスタンスの作成」をご参照ください。

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

手順

手順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レコードの設定

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

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

  3. 管理するCLBを見つけ、IPアドレスをコピーします。

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

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

    2. [ドメイン名の解決] ページで、ドメイン追加 をクリックします。

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

      重要

      Aレコードを作成する前に、TXTレコードを使用してドメイン名の所有権を確認する必要があります。

    4. 管理するドメイン名を見つけて、[操作] 列の [設定] をクリックします。

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

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

      パラメーター

      説明

      データ型

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

      ホスト

      ドメイン名のプレフィックスを入力します。

      DNSリクエストソース

      [デフォルト] を選択します。

      レコード値

      CLBインスタンスのIPアドレスを入力します。

      TTL

      DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。

ステップ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またはリクエストヘッダーに基づいてリダイレクトを設定できます。 詳細については、「Redirect HTTP requests to an HTTPS listener」をご参照ください。