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にアップグレードされます。
注意事項
HTTPからHTTPSへのリダイレクトは、すべてのリージョンのCLBで使用できます。
HTTPからHTTPSへのリダイレクトを設定するには、HTTPリスナーとHTTPSリスナーが同じCLBインスタンスに関連付けられていることを確認します。
前提条件
バックエンドサーバーECS01およびECS02が作成され、アプリケーションがECS01およびECS02にデプロイされます。 この例では、バックエンドサーバーは64ビットAlibaba Cloud Linux 3.2104 LTSオペレーティングシステムを使用します。 詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。
CLBインスタンスが作成されました。 この例では、インターネットに接続するCLBインスタンスが使用されています。 詳細については、「SLB インスタンスの作成」をご参照ください。
必要な証明書がデプロイされます。 証明書をサードパーティのサービスプロバイダーから購入した場合は、証明書を証明書管理サービスにアップロードする必要があります。 証明書がドメイン名に関連付けられていることを確認します。 詳細については、「証明書管理サービスの使用を開始する」をご参照ください。
手順
手順1: HTTPSリスナーの作成
CLB コンソールにログインします。
上部のナビゲーションバーで、CLBインスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、管理するCLBインスタンスを見つけ、[操作] 列の [リスナーの設定] をクリックします。
[プロトコルとリスナー] ステップで、パラメーターを設定し、[次へ] をクリックします。
次のセクションでは、このトピックに関連するパラメーターのみについて説明します。 その他のパラメーターについては、デフォルト値を使用します。 その他のパラメーターの詳細については、「HTTPSリスナーの追加」をご参照ください。
リスナープロトコルの選択: HTTPSを選択します。
リスナーポート: この例では、ポート443が使用されます。
[証明書管理サービス] ステップで、サーバー証明書を選択するか、[サーバー証明書] ドロップダウンリストの [サーバー証明書の作成] をクリックします。 他のパラメーターのデフォルト値を保持し、[次へ] をクリックします。
バックエンドサーバーステップで、バックエンドサーバーを選択します。 この例では、バックエンドサーバーがデフォルトのサーバーグループに追加されます。
[デフォルトサーバーグループ] を選択し、[さらに追加] をクリックします。
[サーバー] パネルで、ECS1とECS2を選択し、[次へ] をクリックします。
[ポート /重み] ステップで、ECS01とECS02の重みを指定し、[追加] をクリックします。
ECS01とECS02のポートを指定し、[次へ] をクリックします。 この例では、ECS01とECS02はポート80を使用します。
[ヘルスチェック] ステップで、デフォルトのパラメーター値を保持し、[次へ] をクリックします。
[確認] ステップで、リスナーの設定を確認し、[送信] をクリックします。 設定が完了したら、表示されるメッセージで [OK] をクリックします。
手順2: HTTPリスナーの転送ルールの設定
[リスナー] タブで、[リスナーの追加] をクリックします。
[プロトコルとリスナー] ステップで、パラメーターを設定し、[次へ] をクリックします。 下表に、各パラメーターを説明します。
パラメーター
説明
リスナープロトコルの選択
リスナープロトコルを選択します。
この例では、HTTPが選択されています。
リスナーポート
バックエンドサーバーへのリクエストの受信と転送に使用するリスナーポートを指定します。
この例では、ポート80が使用される。
詳細設定
詳細設定の横にある [変更] をクリックして、詳細設定を設定できます。
この例では、Redirection by Listenerパラメーターのみが変更されています。 デフォルト設定は、他のパラメータに対して保持されます。
リスナーによるリダイレクト
HTTPリスナーからHTTPSリスナーにトラフィックをリダイレクトするかどうかを指定します。
この例では、[リスナーによるリダイレクト] がオンになっており、[手順1: HTTPSリスナーの作成] で作成したHTTPSリスナーにリスナーが設定されています。
[確認] ステップで、[送信] をクリックします。 設定が完了したら、[OK] をクリックします。
これにより、HTTPリスナーのポート80のすべてのHTTPリクエストは、HTTPSリスナーのポート443にリダイレクトされ、HTTPSリスナーの設定に基づいて転送されます。
手順3: Aレコードの設定
CLB コンソールにログインします。
上部のナビゲーションバーで、CLBインスタンスがデプロイされているリージョンを選択します。
管理するCLBを見つけ、IPアドレスをコピーします。
Aレコードを追加するには、次の手順を実行します。
Alibaba Cloud DNS コンソールにログオンします。
[ドメイン名の解決] ページで、ドメイン追加 をクリックします。
ドメイン追加 ダイアログボックスで、ホストのドメイン名を入力し、[OK] をクリックします。
重要Aレコードを作成する前に、TXTレコードを使用してドメイン名の所有権を確認する必要があります。
管理するドメイン名を見つけて、[操作] 列の [設定] をクリックします。
[DNS 設定] ページで、[レコードの追加] をクリックします。
[DNSレコードの追加] パネルで、次のパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
データ型
ドロップダウンリストからAを選択します。
ホスト
ドメイン名のプレフィックスを入力します。
DNSリクエストソース
[デフォルト] を選択します。
レコード値
CLBインスタンスのIPアドレスを入力します。
TTL
DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。
ステップ4: Verify the result
インターネットにアクセスできるクライアントを使用して、CLBインスタンスに送信されたHTTPリクエストをHTTPSにリダイレクトできるかどうかをテストします。
クライアントのCLIを開きます。
次のコマンドを実行します。
curl -v http:// <CLBインスタンスのドメイン名>
。 次の図に示すように、HTTP 302ステータスコードは、CLBインスタンスに送信されたリクエストがHTTPSにリダイレクトされることを示します。
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」をご参照ください。