HTTPS は、転送中のデータを暗号化する安全なプロトコルです。 サービスを HTTPS にアップグレードした後、CLB を使用して HTTP リクエストを HTTPS にシームレスにリダイレクトできます。 このトピックでは、CLB を使用して HTTP リクエストを HTTPS にリダイレクトする方法について説明します。
主な特長
-
シームレスな移行:HTTP から HTTPS への迅速かつシームレスなリダイレクトにより、ユーザーのブラウジング体験が中断されることはありません。
-
サーバー負荷の軽減:ロードバランサーがリダイレクトを処理し、このタスクをバックエンドサーバーからオフロードします。これにより、サーバーはコアアプリケーションロジックに集中でき、効率が向上します。
ユースケース
-
HTTPS へのアップグレード:HTTP から HTTPS に移行することで、既存の Web サイトやアプリケーションを保護します。これにより、データ転送のセキュリティが強化されます。
-
ドメイン名の変更またはサイト移行:Web サイトを新しいドメインに移行する際に、リダイレクトを使用してユーザーのアクセスが中断されないようにします。
例
CLB インスタンスを購入し、HTTP リスナーを設定した企業は、データセキュリティを強化するために、ウェブサイトを HTTPS にアップグレードする必要があります。アップグレード中のサービス中断を防ぐため、この企業は CLB インスタンスを使用して HTTP リクエストを HTTPS にリダイレクトします。これにより、スムーズな移行が保証され、ビジネスデータが保護されます。
注意事項
-
CLB の HTTP リダイレクト機能はすべてのリージョンで利用可能です。
-
HTTP から HTTPS へのリダイレクトを設定する場合、HTTP リスナーと HTTPS リスナーは同じ CLB インスタンス上にある必要があります。
-
CLB インスタンス上の既存の HTTP リスナーでは、リスナーによるリダイレクトを有効にできません。HTTP リスナーを作成する際に、リスナーによるリダイレクトを有効にする必要があります。
-
新しい HTTP リスナーの作成時にポートの競合が発生した場合 (たとえば、ポート 80 が既存の HTTP リスナーですでに占有されている場合)、まず既存の HTTP リスナーを削除する必要があります。リスナーを削除するには、リスナーリストに移動して既存の HTTP リスナーを選択し、ページの下部にある[削除]をクリックして削除を確定します。新しい HTTP リスナーを作成する際、詳細設定でリダイレクションを有効にし、宛先の HTTPS リスナーを選択してリダイレクト設定を完了します。
前提条件
-
バックエンドサーバーとして ECS01 と ECS02 を作成し、それぞれにアプリケーションをデプロイします。このトピックでは、サーバーは Alibaba Cloud Linux 3.2104 LTS 64 ビットオペレーティングシステムを使用します。詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
-
CLB インスタンスを作成します。このトピックでは、インターネット向け CLB インスタンスを例として使用します。詳細については、「CLB インスタンスの作成と管理」をご参照ください。
-
証明書を購入するか、サードパーティの証明書を Certificate Management Service にアップロードし、ドメイン名にバインドします。詳細については、「証明書を使用して Web サイトの HTTPS を有効にする」をご参照ください。
手順
ステップ1:HTTPS リスナーの作成
-
Classic Load Balancer コンソールにログインします。
-
上部メニューで、CLB インスタンスがデプロイされているリージョンを選択します。
-
インスタンス ページで、対象のインスタンスを探し、操作 列の リスナーの設定 をクリックします。
-
プロトコルとリスナー ステップで、リスナーを次のように設定し、次へ をクリックします。
このトピックでは、必須パラメーターのみを説明します。他のパラメーターはデフォルト値を使用します。他のパラメーターの詳細については、「HTTPS リスナーの追加」をご参照ください。
-
[リスナープロトコルの選択]:HTTPS。
-
[リスニングポート]:443。
-
-
SSL 証明書 ステップで、既存のサーバー証明書を選択するか、サーバー証明書の選択 ドロップダウンリストから サーバー証明書の作成 をクリックします。他のパラメーターはデフォルト値のままにして、次へ をクリックします。
-
バックエンド サーバー ステップで、サーバーグループにバックエンドサーバーを追加します。このトピックでは、デフォルトサーバーグループを例に説明します。
-
デフォルトのサーバーグループ を選択し、さらに追加 をクリックします。
-
サーバー パネルで、ECS01 と ECS02 を選択し、次へ をクリックします。
-
ポート/重み ステップで、ECS01 と ECS02 の重みを設定し、追加 をクリックします。
-
ECS01 と ECS02 の両方のポートを 80 に設定し、次へ をクリックします。
-
-
ヘルスチェック ステップでは、デフォルト設定を維持し、次へ をクリックします。
-
確定 ステップで、リスナー設定を確認して 送信 をクリックします。確認ダイアログボックスが表示されたら、OK をクリックします。
ステップ2:HTTP リスナーの転送ルールの設定
-
リスナー タブで、リスナーの作成 をクリックします。
-
プロトコルとリスナー ステップで、以下の情報を使用してリスナーを設定し、その他の設定はデフォルト値のままにして、次へ をクリックします。
パラメーター
説明
[リスナープロトコルの選択]
リスナーが使用するプロトコルです。
このトピックでは、[HTTP] を選択します。
[リスニングポート]
リクエストを受信し、バックエンドサーバーに転送するポートです。
このトピックでは、このパラメーターを [80] に設定します。
[高度な設定]
編集 をクリックして、詳細設定を展開します。
このトピックでは、リダイレクション のみを変更します。その他のパラメーターはデフォルト値のままにします。
[リダイレクション]
HTTP リスナーから HTTPS リスナーへのトラフィックのリダイレクトを有効にします。
このトピックでは、リダイレクション を有効にし、対象リスナー には、ステップ 1: HTTPS リスナーの作成 で作成した HTTPS リスナーを選択します。
-
確定 ページで 送信 をクリックします。設定が正常に完了したら、OK をクリックします。
リスナーによるリダイレクトを有効にすると、CLB インスタンス上の HTTP:80 へのすべてのリクエストが HTTPS:443 にリダイレクトされます。その後、リクエストは HTTPS リスナーの設定に基づいて転送されます。
ステップ3:DNS の設定
-
Alibaba Cloud に登録されていないドメインの場合、DNS レコードを設定する前に、まず Alibaba Cloud DNS コンソールにドメインを追加する必要があります。
-
CLB インスタンスが内部向けインスタンスの場合、まず Elastic IP アドレス (EIP) を関連付けてから、ドメイン名を EIP にマッピングする A レコードを作成して、パブリックアクセスを有効にする必要があります。
-
左側のナビゲーションペインで、を選択します。
-
インスタンス ページで、対象のインスタンスを選択し、その IP をコピーします。
-
次の手順を実行して、A レコードを追加します。
-
Alibaba Cloud DNS コンソールにログインします。
-
インターネットの権威ある DNS 解決 ページで、目的のドメイン名を見つけ、Actions 列の 解決設定 をクリックします。
-
解決設定 ページで、Add Record をクリックします。
-
Add Record パネルで、次のパラメーターを設定します。その他のパラメーターはデフォルト値のままにするか、必要に応じて変更できます。次に、OK をクリックします。
パラメーター
説明
[Record Type]
ドロップダウンリストから A を選択します。
[Hostname]
ドメイン名のプレフィックスです。
説明ルートドメインの場合は、ホスト名を @ に設定します。
[Record Value]
コピーした CLB インスタンスの IP アドレスを入力します。
-
ステップ4:結果の確認
インターネットにアクセスできるクライアントから、CLB インスタンスへの HTTP リクエストが HTTPS にリダイレクトされるかどうかをテストします。
-
クライアントでコマンドラインインターフェイス (CLI) を開きます。
-
curl -v http://<CLB domain name>コマンドを実行します。302 ステータスコードが返され、CLB へのリクエストが HTTPS にリダイレクトされることを示します。C:\Users\admin>curl -v http://your.domain.com * Trying 192.0.2.1:80... * Connected to your.domain.com (192.0.2.1) port 80 > GET / HTTP/1.1 > Host: your.domain.com > User-Agent: curl/8.4.0 > Accept: */* > < HTTP/1.1 302 Found < Date: Wed, 17 Jul 2024 03:13:13 GMT < Content-Type: text/html < Content-Length: 154 < Connection: keep-alive < Location: https://your.domain.com < Via: HTTP/1.1 SLB.94 < <html> <head><title>302 Found</title></head> <body bgcolor="white"> <center><h1>302 Found</h1></center> <hr><center>nginx</center> </body> </html> * Connection #0 to host your.domain.com left intact
リダイレクトのステータスコード
次の表では、CLB がサポートするリダイレクション ステータスコード について説明します。
|
ステータスコード |
説明 |
|
302 |
一時的なリダイレクト。リソースが一時的に別の URL にあることを示します。クライアントは今後のリクエストに元の URL を使用し続ける必要があります。 |
よくある質問
リスナーによるリダイレクトのオプションが見つからない
CLB インスタンス上の既存の HTTP リスナーでは、リスナーによるリダイレクトを有効にできません。リスナーによるリダイレクトを有効にするには、HTTP リスナーを再作成する必要があります。
関連ドキュメント
CLB はリスナールールに基づいてトラフィックをリダイレクトします。対照的に、Application Load Balancer (ALB) はアプリケーション層でリクエストをリダイレクトするため、パスベースやヘッダーベースのリダイレクトなど、より柔軟で幅広い設定オプションを提供します。詳細については、「ALB を使用した HTTP リクエストから HTTPS へのリダイレクト」をご参照ください。