アプリケーションのデータ送信を暗号化する場合は、HTTPSリスナーを作成してHTTPSリクエストを転送できます。 HTTPSリスナーは、Application Load Balancer (ALB) とSSLまたはTLSが有効になっているクライアント間の暗号化されたデータ転送をサポートします。
前提条件
ALBインスタンスが作成されました。 詳細については、「ALBインスタンスの作成」をご参照ください。
TLSセキュリティポリシーと少なくとも1つのSSLサーバー証明書がALBインスタンスにデプロイされています。 詳細については、「TLSセキュリティポリシー」をご参照ください。
バックエンドサーバーグループが作成されます。 詳細については、「サーバーグループの作成と管理」をご参照ください。
手続き
このトピックでは、HTTPSリスナーの作成に使用できる2つの手順について説明します。 必要に応じてメソッドを選択できます。
手動作成
手順1: リスナーの作成
ALBコンソールにログインします。
上部のナビゲーションバーで、ALBインスタンスが存在するリージョンを選択します。
次のいずれかの方法を使用して、リスナー構成ウィザードを開きます。
インスタンス ページで、管理するALBインスタンスを見つけ、操作 列の リスナーの作成 をクリックします。
インスタンス ページで、管理するALBインスタンスのIDをクリックします。 リスナー タブで、リスナーの作成 をクリックします。
リスナーの設定ウィザードページで、次のパラメーターを設定し、次へをクリックします。
パラメーター
説明
リスナープロトコルの選択
リスナープロトコルを選択します。
この例では、HTTPSが選択されています。
リスナーポート
ALBインスタンスがリッスンするポートを入力します。 ALBインスタンスはポートをリッスンし、リクエストをバックエンドサーバーに転送します。 この例では、ポート443が使用される。 ほとんどの場合、ポート80はHTTPに使用され、ポート443はHTTPSに使用されます。
有効な値: -1 から 65535
説明同じALBインスタンスで、同じプロトコルを使用するリスナーのポートは一意である必要があります。 HTTPリスナーとHTTPSリスナーは異なるポートを使用する必要があります。
リスナー名
リスナーの名前を入力します。
タグ
[タグキー] および [タグ値] パラメーターを設定して、タグを追加します。 1つ以上のタグを追加できます。
タグを指定した後、[リスナー] タブのタグでリスナーをフィルタリングできます。
詳細設定
[変更] をクリックして、詳細設定を設定できます。
HTTP/2の有効化
リスナーに対してHTTP/2を有効にするかどうかを指定します。
アイドル接続タイムアウト期間
アイドル接続のタイムアウト期間を指定します。 単位は秒です。 有効な値: 1 ~ 60。 より長いタイムアウト期間を指定するには、
Quota Centerコンソールに移動します。
指定されたタイムアウト期間内にリクエストが受信されない場合、CLBは接続を閉じます。 要求が受信されると、CLBは新しい接続を確立する。
説明この機能はHTTP/2リクエストでは使用できません。
接続リクエストタイムアウト
リクエストのタイムアウト時間を指定します。 単位は秒です。 有効な値: 1 ~ 180 より長いタイムアウト期間を指定するには、Quota Centerコンソールに移動します。
リクエストタイムアウト期間内にバックエンドサーバーから応答が受信されない場合、ALBはHTTP 504エラーコードをクライアントに返します。
圧縮
圧縮を有効にすると、特定の種類のファイルが圧縮されます。 圧縮を無効にすると、ファイルは圧縮されません。
Brotliはすべてのファイルタイプをサポートします。 GZIPは、
text/xml
、text/plain
、text/css
、application/javascript
、application/x-javascript
、application/rss + xml
、application/atom + xml
、application/xml
、application/json
のファイルタイプをサポートしています。実際のクライアントソース IP を見つける
ALBインスタンスがX-Forwarded-ForヘッダーからクライアントIPアドレスを取得できるようにするかどうかを指定します。 この機能を有効にする場合は、信頼できるIPアドレスを指定する必要があります。
信頼済みIPアドレスリストを
0.0.0.0/0
に設定すると、ALBインスタンスはX-Forwarded-Forヘッダーの左端のIPアドレスを取得します。 IPアドレスは送信元クライアントのIPアドレスです。信頼済みIPアドレスリストを
proxy1 IP、proxy2 IP、..
の形式で設定した場合、ALBインスタンスはX-Forwarded-ForヘッダーのIPアドレスを右から左に、信頼済みIPアドレスリストと比較します。 信頼済みIPアドレスリストにない最初のIPアドレスは、送信元クライアントIPアドレスと見なされます。
使用上の注意
X-Forwarded-Forヘッダーに、
X-Forwarded-For: <client-IP-address> 、<proxy1> 、<proxy2> 、…
などの複数のipアドレスが含まれている場合、左端のIPアドレスは送信元クライアントIPアドレスです。 ALB転送ルールで送信元IPアドレスに基づく照合とクライアントIPアドレスごとのQPSに基づくスロットリング機能を有効にする場合は、[クライアントIPの取得] スイッチをオンにして、ALBインスタンスがX-Forwarded-Forヘッダーから送信元クライアントIPアドレスを取得できるようにする必要があります。 詳細については、「転送ルールの作成」をご参照ください。
HTTPヘッダーの追加
デフォルトでは、X-Forwarded-Forヘッダーが選択されています。 ヘッダーは、送信元クライアントIPアドレスを取得するために使用されます。 ALBは、送信元クライアントIPアドレスをヘッダーに挿入し、ヘッダーをバックエンドサーバーに渡します。 詳細については、「ALBによるクライアントIPアドレスの保持」をご参照ください。
追加するHTTPヘッダーを選択します。 有効な値:
ALB IDを取得するSLB-IDの追加
: ALBインスタンスのIDを格納するSLB-IDヘッダーを追加します。Add X-Forwarded-Proto to Retrieve Listening Protocol
: リスナープロトコルを格納するX-Forwarded-Protoヘッダーを追加します。X-Forwarded-Clientcert-subjectdnを追加してクライアントサーバー証明書の所有者情報を取得
: X-Forwarded-Clientcert-subjectdnヘッダーを追加して、クライアント証明書に関する所有者情報を格納します。X-Forwarded-Clientcert-issuerdnを追加してクライアント証明書発行者情報を取得
: X-Forwarded-Clientcert-issuerdnヘッダーを追加して、クライアント証明書を発行する権限に関する情報を格納します。Add X-Forwarded-Clientcert-fingerprint to Retrieve Fingerprint of Client Certificate
: X-Forwarded-Clientcert-fingerprintヘッダーを追加して、クライアント証明書のフィンガープリントを格納します。X-Forwarded-Clientcert-clientverifyを追加してクライアント証明書の検証結果を取得
: X-Forwarded-Clientcert-clientverifyヘッダーを追加して、クライアント証明書の検証結果を格納します。Add X-Forwarded-Port to Retrieve Listening Port
: リスナーポートを格納するX-Forwarded-Portヘッダーを追加します。Add X-Forwarded-Client-srcport to Retrieve Client Port
: クライアントポートを格納するX-Forwarded-Client-srcportヘッダーを追加します。
QUIC アップデート
クイックUDPインターネット接続 (QUIC) アップグレードを有効にするかどうかを指定します。 この機能を使用するには、[関連するQUICリスナー] ドロップダウンリストからQUICリスナーを選択する必要があります。
QUICリスナーが作成されていない場合は、[リスナーの作成] をクリックして作成します。 詳細については、「QUICリスナーの追加」をご参照ください。
ALBはiQUICとgQUICをサポートしています。 詳細については、「QUICを使用したビデオおよびオーディオコンテンツの配信の高速化」をご参照ください。
手順2: SSL証明書の追加
HTTPSリスナーを作成するには、データ送信を保護するためにID認証用のSSL証明書を設定する必要があります。 次の表に、ALBでサポートされている証明書を示します。
証明書 | 説明 | 一方向認証に必要 | 相互認証に必要 |
サーバー証明書 | サーバー証明書は、サーバーのIDを認証するために使用されます。 ブラウザは、サーバーから送信された証明書が信頼できる認証局 (CA) によって署名および発行されているかどうかを確認します。 詳細については、「SSL証明書とは 」をご参照ください。 | 可 証明書管理サービスコンソールでサーバー証明書を購入またはアップロードできます。 ALBは、証明書管理サービスから証明書を取得し、証明書を使用します。 | 可 証明書管理サービスコンソールでサーバー証明書を購入またはアップロードできます。 ALBは、証明書管理サービスから証明書を取得し、証明書を使用します。 |
CA証明書 | CA証明書は、クライアント証明書の署名を検証するためにサーバーによって使用されます。 署名が無効である場合、接続要求は拒否される。 説明 クライアント証明書は、クライアントがサーバーと通信するときにクライアントのIDを認証するために使用されます。 クライアントにのみクライアント証明書をインストールする必要があります。 | 任意 | 可 証明書管理サービスコンソールでCA証明書を購入またはアップロードできます。 ALBは、証明書管理サービスから証明書を取得し、証明書を使用します。 |
複数のドメイン名にアクセスしたり、複数のサーバー証明書を追加したい場合は、HTTPSリスナーに追加の証明書を追加できます。 詳細については、「追加の証明書の追加」をご参照ください。
SSL 証明書の設定ステップで、サーバー証明書を選択します。
使用できるサーバー証明書がない場合は、ドロップダウンリストで [SSL証明書の作成] をクリックして、証明書管理サービスコンソールに移動します。 その後、サーバー証明書を購入またはアップロードできます。 詳細については、「SSL証明書の購入」および「SSL証明書のアップロード」をご参照ください。
相互認証を有効にするか、TLSセキュリティポリシーを設定するには、変更次の詳細設定.
[詳細設定] セクションの [相互認証の有効化] をオンにします。 選択Alibaba CloudCA証明書のソースドロップダウンリストからCA証明書を選択し、デフォルトのCA証明書ドロップダウンリスト。
使用できるCA証明書がない場合は、[CA証明書の購入] をクリックして作成します。 詳細については、「プライベートCAの購入と有効化」をご参照ください。
説明標準およびWAF対応のALBインスタンスのみが相互認証をサポートしています。 Basic ALBインスタンスは相互認証をサポートしていません。
この機能を有効にした後に相互認証を無効にする場合は、次の操作を実行します。
[インスタンス] ページで、管理するNLBインスタンスのIDをクリックします。
[リスナー] タブで、管理するHTTPSリスナーのIDをクリックします。
[リスナーの詳細] タブで、[SSL証明書] セクションの相互認証を無効にします。
TLSセキュリティポリシーをを選択し、次へをクリックします。
利用可能なTLSセキュリティポリシーがない場合は、[TLSセキュリティポリシーの作成] をクリックして作成します。
TLSセキュリティポリシーには、HTTPSリスナーで使用できるTLSプロトコルバージョンと暗号スイートが含まれています。 詳細については、「TLSセキュリティポリシー」をご参照ください。
手順3: サーバーグループの選択
サーバーグループ ステップで、サーバーグループを選択してバックエンドサーバーを表示し、[次へ] をクリックします。
ステップ4: 設定の確認
確定 ステップで、設定を確認し、[送信] をクリックします。
クイック作成
この方法を選択した場合、リスナープロトコル、リスナーポート、サーバー証明書、TLSセキュリティポリシー、およびサーバーグループを指定するだけで済みます。
ALBコンソールにログインします。
上部のナビゲーションバーで、ALBインスタンスが存在します。
[インスタンス] ページで、管理するNLBインスタンスを見つけ、そのIDをクリックします。
[リスナー] タブをクリックします。 [リスナー] タブで、[クイック作成リスナー] をクリックします。
クイック作成リスナーダイアログボックスで、以下のパラメーターを設定し、OKをクリックします。
パラメーター
説明
リスナープロトコル
リスナープロトコルを選択します。 この例では、HTTPSが選択されています。
リスナーポート
バックエンドサーバーへのリクエストの受信と転送に使用されるフロントエンドポート。
一般的に使用されるポートを選択するか、ポート番号を入力できます。 有効な値: -1 から 65535
サーバー証明書
ドロップダウンリストからサーバー証明書を選択します。
使用できるサーバー証明書がない場合は、[SSL証明書の作成] をクリックして作成します。 詳細については、「SSL証明書の購入」および「SSL証明書のアップロード」をご参照ください。
リソースグループ
サーバーグループのリソースグループを選択します。
TLSセキュリティポリシー
利用可能なTLSセキュリティポリシーがない場合は、[TLSセキュリティポリシーの作成] をクリックして作成します。 詳細については、「TLSセキュリティポリシー」をご参照ください。
サーバーグループ
[サーバータイプ] パラメーターを設定し、指定したサーバータイプに基づいてサーバーグループを選択します。
よくある質問
HTTPSリスナーでサポートされているTLSバージョンは何ですか?
HTTPSリスナーは、TLS 1.0、1.1、1.2、および1.3をサポートしています。 詳細については、「TLSセキュリティポリシー」をご参照ください。
バックエンドサーバーは、関連付けられたHTTPSリスナーによって使用されるTLSバージョンを取得できますか。
はい。バックエンドサーバーは、関連付けられたHTTPSリスナーが使用するTLSバージョンを取得できます。
ネットワークトラフィックをバックエンドサーバーに配信するためにHTTPSリスナーが使用するHTTPバージョンはどれですか。
クライアント要求がHTTP/1.1またはHTTP/2を使用する場合、レイヤー7リスナーはHTTP/1.1を使用してネットワークトラフィックをバックエンドサーバーに配信します。
クライアント要求がHTTP/1.1およびHTTP/2以外のプロトコルを使用する場合、レイヤー7リスナーはHTTP/1.0を使用してネットワークトラフィックをバックエンドサーバーに配信します。
ワイルドカードリスナー証明書はどのような要件を満たす必要がありますか?
HTTPSリスナーにワイルドカード証明書を設定する場合は、次の制限事項に注意してください。
ワイルドカード証明書を選択すると、ALBはワイルドカード (
*
) を1つだけ含む証明書を識別できます。ワイルドカードはドメイン名の左端にある必要があります。 たとえば、ALBは* .example.com
と* test.example.com
を識別できますが、tes t*.example.com
は識別できません。ワイルドカード証明書の要件:
ワイルドカードドメイン名のレベル: ワイルドカードドメイン名は、ワイルドカードドメイン名と同じレベルの特定のドメイン名と一致します。 たとえば、
* .example.com
はtest.example.com
に一致できますが、ワイルドカードドメイン名より1レベル低いtest.test.example.com
には一致できません。国際化ドメイン名 (IDNA):
ワイルドカード文字が唯一のワイルドカード文字で、ワイルドカードドメイン名の左端にある場合、IDNAはワイルドカードドメイン名と一致します。 たとえば、
xn--fsqu00a.example.com
は* .example.com
に一致します。ワイルドカード文字がワイルドカードドメイン名の左端にない場合、IDNAはワイルドカードドメイン名と一致しません。 たとえば、
* test.example.com
をxn--fsqu00atest.example.com
できません。
一致範囲: ワイルドカード文字 (
*
) は、数字、文字、およびハイフン (-) と一致できます。 たとえば、* .example.com
はtest.example.com
に一致できますが、test_test.example.com
には一致できません。
関連ドキュメント
ALBは、さまざまな高度なルーティング機能をサポートします。 詳細については、「リスナーの転送ルールの管理」をご参照ください。
HTTPSリスナーは、さまざまな使用シナリオに最適です。 詳細については、以下のトピックをご参照ください。