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

Server Load Balancer:HTTPSリスナーの追加

最終更新日:Nov 01, 2024

アプリケーションのデータ送信を暗号化する場合は、HTTPSリスナーを作成してHTTPSリクエストを転送できます。 HTTPSリスナーは、Application Load Balancer (ALB) とSSLまたはTLSが有効になっているクライアント間の暗号化されたデータ転送をサポートします。

前提条件

  • ALBインスタンスが作成されました。 詳細については、「ALBインスタンスの作成」をご参照ください。

  • TLSセキュリティポリシーと少なくとも1つのSSLサーバー証明書がALBインスタンスにデプロイされています。 詳細については、「TLSセキュリティポリシー」をご参照ください。

  • バックエンドサーバーグループが作成されます。 詳細については、「サーバーグループの作成と管理」をご参照ください。

手続き

このトピックでは、HTTPSリスナーの作成に使用できる2つの手順について説明します。 必要に応じてメソッドを選択できます。

  • 手動作成: HTTPリスナーを作成し、相互認証などの高度な機能を設定できます。

  • クイック作成: テンプレートを使用して、HTTPリスナーをすばやく作成できます。 リスナープロトコル、リスナーポート、サーバー証明書、およびバックエンドサーバーグループを指定するだけです。

手動作成

手順1: リスナーの作成

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

  2. 上部のナビゲーションバーで、ALBインスタンスが存在するリージョンを選択します。

  3. 次のいずれかの方法を使用して、リスナー構成ウィザードを開きます。

    • インスタンス ページで、管理するALBインスタンスを見つけ、操作 列の リスナーの作成 をクリックします。

    • インスタンス ページで、管理するALBインスタンスのIDをクリックします。 リスナー タブで、リスナーの作成 をクリックします。

  4. リスナーの設定ウィザードページで、次のパラメーターを設定し、次へをクリックします。

    パラメーター

    説明

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

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

    この例では、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/xmltext/plaintext/cssapplication/javascriptapplication/x-javascriptapplication/rss + xmlapplication/atom + xmlapplication/xmlapplication/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リスナーを選択する必要があります。

手順2: SSL証明書の追加

HTTPSリスナーを作成するには、データ送信を保護するためにID認証用のSSL証明書を設定する必要があります。 次の表に、ALBでサポートされている証明書を示します。

証明書

説明

一方向認証に必要

相互認証に必要

サーバー証明書

サーバー証明書は、サーバーのIDを認証するために使用されます。

ブラウザは、サーバーから送信された証明書が信頼できる認証局 (CA) によって署名および発行されているかどうかを確認します。 詳細については、「SSL証明書とは 」をご参照ください。

証明書管理サービスコンソールでサーバー証明書を購入またはアップロードできます。 ALBは、証明書管理サービスから証明書を取得し、証明書を使用します。

証明書管理サービスコンソールでサーバー証明書を購入またはアップロードできます。 ALBは、証明書管理サービスから証明書を取得し、証明書を使用します。

CA証明書

CA証明書は、クライアント証明書の署名を検証するためにサーバーによって使用されます。 署名が無効である場合、接続要求は拒否される。

説明

クライアント証明書は、クライアントがサーバーと通信するときにクライアントのIDを認証するために使用されます。 クライアントにのみクライアント証明書をインストールする必要があります。

任意

証明書管理サービスコンソールでCA証明書を購入またはアップロードできます。 ALBは、証明書管理サービスから証明書を取得し、証明書を使用します。

説明

複数のドメイン名にアクセスしたり、複数のサーバー証明書を追加したい場合は、HTTPSリスナーに追加の証明書を追加できます。 詳細については、「追加の証明書の追加」をご参照ください。

  1. SSL 証明書の設定ステップで、サーバー証明書を選択します。

    使用できるサーバー証明書がない場合は、ドロップダウンリストで [SSL証明書の作成] をクリックして、証明書管理サービスコンソールに移動します。 その後、サーバー証明書を購入またはアップロードできます。 詳細については、「SSL証明書の購入」および「SSL証明書のアップロード」をご参照ください。

  2. 相互認証を有効にするか、TLSセキュリティポリシーを設定するには、変更次の詳細設定.

  3. [詳細設定] セクションの [相互認証の有効化] をオンにします。 選択Alibaba CloudCA証明書のソースドロップダウンリストからCA証明書を選択し、デフォルトのCA証明書ドロップダウンリスト。

    使用できるCA証明書がない場合は、[CA証明書の購入] をクリックして作成します。 詳細については、「プライベートCAの購入と有効化」をご参照ください。

    説明
    • 標準およびWAF対応のALBインスタンスのみが相互認証をサポートしています。 Basic ALBインスタンスは相互認証をサポートしていません。

    • この機能を有効にした後に相互認証を無効にする場合は、次の操作を実行します。

      1. [インスタンス] ページで、管理するNLBインスタンスのIDをクリックします。

      2. [リスナー] タブで、管理するHTTPSリスナーのIDをクリックします。

      3. [リスナーの詳細] タブで、[SSL証明書] セクションの相互認証を無効にします。

  4. TLSセキュリティポリシーを選択し、次へをクリックします。

    利用可能なTLSセキュリティポリシーがない場合は、[TLSセキュリティポリシーの作成] をクリックして作成します。

    TLSセキュリティポリシーには、HTTPSリスナーで使用できるTLSプロトコルバージョンと暗号スイートが含まれています。 詳細については、「TLSセキュリティポリシー」をご参照ください。

手順3: サーバーグループの選択

サーバーグループ ステップで、サーバーグループを選択してバックエンドサーバーを表示し、[次へ] をクリックします。

ステップ4: 設定の確認

確定 ステップで、設定を確認し、[送信] をクリックします。

クイック作成

この方法を選択した場合、リスナープロトコル、リスナーポート、サーバー証明書、TLSセキュリティポリシー、およびサーバーグループを指定するだけで済みます。

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

  2. 上部のナビゲーションバーで、ALBインスタンスが存在します。

  3. [インスタンス] ページで、管理するNLBインスタンスを見つけ、そのIDをクリックします。

  4. [リスナー] タブをクリックします。 [リスナー] タブで、[クイック作成リスナー] をクリックします。

  5. クイック作成リスナーダイアログボックスで、以下のパラメーターを設定し、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.comtest.example.comに一致できますが、ワイルドカードドメイン名より1レベル低いtest.test.example.comには一致できません。

      • 国際化ドメイン名 (IDNA):

        • ワイルドカード文字が唯一のワイルドカード文字で、ワイルドカードドメイン名の左端にある場合、IDNAはワイルドカードドメイン名と一致します。 たとえば、xn--fsqu00a.example.com* .example.comに一致します。

        • ワイルドカード文字がワイルドカードドメイン名の左端にない場合、IDNAはワイルドカードドメイン名と一致しません。 たとえば、* test.example.comxn--fsqu00atest.example.comできません。

      • 一致範囲: ワイルドカード文字 (*) は、数字、文字、およびハイフン (-) と一致できます。 たとえば、* .example.comtest.example.comに一致できますが、test_test.example.comには一致できません。

関連ドキュメント