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

Server Load Balancer:HTTP ヘッダーフィールド

最終更新日:Mar 05, 2026

このトピックでは、Application Load Balancer (ALB) がサポートする追加の HTTP ヘッダーフィールドと、それらを追加する方法について説明します。これらのヘッダーフィールドをカスタマイズして、特定の機能を実装できます。

ALB がサポートする追加 HTTP ヘッダーフィールド

HTTP ヘッダーフィールドは、ハイパーテキスト転送プロトコル (HTTP) のリクエストおよび応答メッセージのヘッダー部分です。必要に応じて HTTP ヘッダーフィールドをカスタマイズできますが、これにより Web サーバーやブラウザ上で非標準の HTTP ヘッダーフィールドが使用される場合があります。次の表に、ALB がサポートする追加ヘッダーフィールドを示します。

フィールド名

説明

適用可能なリスナープロトコル

X-Forwarded-For

X-Forwarded-For ヘッダーフィールドを有効にして、クライアント IP アドレスを取得します。

  • X-Forwarded-For ヘッダーフィールドを有効にする場合:

    ALB がバックエンドサーバーにリクエストを送信する前に、リクエストから X-Forwarded-For ヘッダーフィールドを追加または削除します。

    • 追加(デフォルト)

      デフォルトでは、ALB はクライアント IP アドレスを X-Forwarded-For ヘッダーフィールドに保存し、バックエンドサーバーに送信します。元のリクエストに X-Forwarded-For ヘッダーフィールドが含まれていない場合、ALB はその値としてクライアント IP アドレスを持つ X-Forwarded-For ヘッダーフィールドを作成します。そうでない場合、ALB は既存の X-Forwarded-For ヘッダーフィールドにクライアント IP アドレスを追加してから、バックエンドサーバーに送信します。X-Forwarded-For リクエストヘッダーには、カンマで区切られた複数の IP アドレスが含まれる場合があります。

    • 削除

      ALB がバックエンドサーバーにリクエストを送信する前に、リクエストから X-Forwarded-For ヘッダーフィールドを削除します。

  • X-Forwarded-For ヘッダーフィールドを無効にする場合:

    ALB がバックエンドサーバーにリクエストを送信する前に、リクエスト内の X-Forwarded-For ヘッダーフィールドを変更しません。

フィールドフォーマット:

X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …

X-Forwarded-For ヘッダーフィールドを「追加」「削除」「無効」のいずれかに設定した場合に、バックエンドサーバーが受信するヘッダーフィールドの例を表示します。

この例では、最終ホップの IP アドレスは 127.0.0.1 です。

リクエストの説明

リクエスト例

X-Forwarded-For ヘッダーフィールドを有効にする

X-Forwarded-For ヘッダーフィールドを無効にする

追加

削除

リクエストに X-Forwarded-For ヘッダーフィールドが含まれていない

GET /index.html HTTP/1.1

Host: example.com

X-Forwarded-For: 127.0.0.1

なし

なし

リクエストに 1 つのクライアント IP アドレスを含む X-Forwarded-For ヘッダーフィールドが含まれている

GET /index.html HTTP/1.1

Host: example.com

X-Forwarded-For: 127.0.0.2

X-Forwarded-For: 127.0.0.2, 127.0.0.1

なし

X-Forwarded-For: 127.0.0.2

リクエストに複数のクライアント IP アドレスを含む X-Forwarded-For ヘッダーフィールドが含まれている

GET /index.html HTTP/1.1

Host: example.com

X-Forwarded-For: 127.0.0.2, 127.0.0.3

X-Forwarded-For: 127.0.0.2, 127.0.0.3, 127.0.0.1

なし

X-Forwarded-For: 127.0.0.2, 127.0.0.3

ALB がクライアントの送信元 IP アドレスを取得する方法の詳細については、「ALB インスタンス経由でバックエンドサーバーがクライアントの送信元 IP アドレスを取得する方法」をご参照ください。

SLB-ID

SLB-ID ヘッダーフィールドを有効にして、SLB インスタンス ID を取得します。

  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Proto

X-Forwarded-Proto ヘッダーフィールドを有効にして、クライアントと SLB リスナー間の接続に使用されたプロトコルを取得します。ご利用のアプリケーションは、X-Forwarded-Proto ヘッダーフィールドに格納されたプロトコルを使用して、リクエストを宛先 URL にリダイレクトできます。

フィールドフォーマット:

X-Forwarded-Proto: <originatingProtocol>
  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Port

X-Forwarded-Port ヘッダーフィールドを有効にして、クライアントと SLB リスナー間の接続に使用されたポートを取得します。

フィールドフォーマット:

X-Forwarded-Port: <port>
  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Host

X-Forwarded-Host ヘッダーフィールドを有効にして、クライアントが SLB インスタンスにアクセスするために使用するドメイン名を取得します。

フィールドフォーマット:

X-Forwarded-Host: <host>
  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Client-srcport

X-Forwarded-Client-srcport ヘッダーフィールドを有効にして、SLB インスタンスにアクセスするクライアントのポートを取得します。

フィールドフォーマット:

X-Forwarded-Client-srcport: <port>

X-Forwarded-Clientcert-subjectdn

X-Forwarded-Clientcert-subjectdn ヘッダーフィールドを有効にして、SLB インスタンスにアクセスするために使用されるクライアント証明書の所有者情報を取得します。

このヘッダーフィールドを有効にした後は、カスタム HTTP ヘッダー名を入力する必要があります。

HTTPS

X-Forwarded-Clientcert-issuerdn

X-Forwarded-Clientcert-issuerdn ヘッダーフィールドを有効にして、SLB インスタンスにアクセスするために使用されるクライアント証明書の発行者情報を取得します。

このヘッダーフィールドを有効にした後は、カスタム HTTP ヘッダー名を入力する必要があります。

HTTPS

X-Forwarded-Clientcert-fingerprint

X-Forwarded-Clientcert-fingerprint ヘッダーフィールドを有効にして、SLB インスタンスにアクセスするために使用されるクライアント証明書の指紋を取得します。

このヘッダーフィールドを有効にした後は、カスタム HTTP ヘッダー名を入力する必要があります。

HTTPS

X-Forwarded-Clientcert-clientverify

X-Forwarded-Clientcert-clientverify ヘッダーフィールドを有効にして、SLB インスタンスにアクセスするために使用されるクライアント証明書の検証結果を取得します。

このヘッダーフィールドを有効にした後は、カスタム HTTP ヘッダー名を入力する必要があります。

HTTPS

説明
  • バックエンドサーバーが HTTP ヘッダーフィールドを取得する際は、大文字と小文字を区別しないように設定してください。これは HTTP 仕様に準拠しています。

    • ALB がバックエンドサーバーに渡す X-Forwarded-For ヘッダーフィールドの先頭文字は常に大文字です。

    • その他の追加 HTTP ヘッダーフィールドについては、クライアントリクエストにヘッダーフィールドが含まれている場合、ALB はそのヘッダーフィールドをクライアントリクエストと同じ形式でバックエンドサーバーに渡します。そうでない場合、ALB は上記の表の「フィールド名」列に指定された形式でヘッダーフィールドをバックエンドサーバーに渡します。

  • X-Forwarded-Clientcert-subjectdnX-Forwarded-Clientcert-issuerdnX-Forwarded-Clientcert-fingerprint、または X-Forwarded-Clientcert-clientverify を有効にする場合、カスタム HTTP ヘッダー名として以下の値を設定することはできません:slb-idslb-ipx-forwarded-forx-forwarded-protox-forwarded-eipx-forwarded-portx-forwarded-client-srcportx-forwarded-hostconnectionupgradecontent-lengthtransfer-encodingkeep-alivetehostcookieremoteip、または authority

  • クライアント証明書関連の追加 HTTP ヘッダーフィールドの説明

    次の追加 HTTP ヘッダーフィールドは、HTTPS リスナーに対して相互認証が有効になっている場合にのみ有効になります。

    X-Forwarded-Clientcert-subjectdn

    • 機能:クライアント証明書のサブジェクト情報を転送します。

    • 内容:証明書所有者の識別情報。

    • 例のフォーマット:X-Forwarded-Clientcert-Subjectdn: CN=client.example.com,O=Example Corp,C=US

    • 含まれる情報:

      • CN (Common Name):一般名

      • O (Organization):組織名

      • OU (Organizational Unit):組織単位

      • C (Country):国別コード

      • ST (State):都道府県

      • L (Locality):市区町村

    X-Forwarded-Clientcert-issuerdn

    • 機能:クライアント証明書の発行者情報を転送します。

    • 内容:証明書を発行した認証局 (CA) の情報。

    • 例のフォーマット:X-Forwarded-Clientcert-Issuerdn: CN=Example CA,O=Example Corp,C=US

    • 用途:証明書が信頼できる認証局によって発行されたものかどうかを検証するために使用されます。

    X-Forwarded-Clientcert-fingerprint

    • 機能:クライアント証明書のデジタル指紋を転送します。

    • 内容:証明書の指紋。これは、SHA-1 や SHA-256 などのハッシュアルゴリズムをデジタル証明書全体に適用して計算された固定長のハッシュ値であり、証明書の一意な識別子として機能します。

    • 例のフォーマット:X-Forwarded-Clientcert-Fingerprint: SHA256=1234567890abcdef...

    • 用途:検証や監査のために証明書を一意に識別するために使用されます。

    X-Forwarded-Clientcert-clientverify

    • 機能:クライアント証明書の検証結果を転送します。

    • 内容:証明書の検証ステータス。

    • 取り得る値:

      • SUCCESS:証明書は有効です。

      • FAILED:証明書の検証に失敗しました。

      • NONE:クライアント証明書が提供されていません。

      • EXPIRED:証明書の有効期限が切れています。

      • REVOKED:証明書は失効しています。

コンソールでの HTTP ヘッダーフィールドの追加

リスナー作成時に HTTP ヘッダーフィールドを追加する

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

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

  3. 以下のいずれかの方法で、リスナー構成ウィザードを開きます。

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

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

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

    リスナー構成

    説明

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

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

    詳細設定

    変更をクリックして、詳細構成オプションを展開します。

    追加のHTTPヘッダー

    有効にするカスタム HTTP ヘッダーフィールドを選択します。

    説明

    このトピックでは、ヘッダーフィールドに関連する構成のみを説明します。その他のパラメーターの詳細については、以下のトピックをご参照ください。

  5. 画面の指示に従って、リスナーの作成を完了するための後続の手順を実行します。

既存のリスナーに HTTP ヘッダーフィールドを追加する

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

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

  3. インスタンスページで、対象のインスタンスの ID をクリックします。

  4. リスナータブをクリックします。対象のリスナーの操作列で、更多 > リスナーの変更を選択します。

  5. リスナーの変更ダイアログボックスで、詳細設定の右側にある変更をクリックします。

  6. 追加のHTTPヘッダーセクションで、ヘッダーフィールドを追加、保持、または削除し、保存をクリックします。

API を使用した HTTP ヘッダーフィールドの追加

リスナー作成時にヘッダーフィールドを追加することも、既存のリスナーに対してヘッダーフィールドを追加、保持、または削除することもできます。

  • リスナーの作成: CreateListener API を呼び出し、XForwardedForConfig パラメーターを構成します。

  • 既存のリスナーの変更: UpdateListenerAttribute API を呼び出し、XForwardedForConfig パラメーターを更新します。

参考資料

コンソール操作

API リファレンス

  • CreateListener: HTTP、HTTPS、または QUIC リスナーを作成する際に、XForwardedForConfig パラメーターを設定して HTTP ヘッダーフィールドを追加します。

  • UpdateListenerAttribute: リスナーの構成を更新する際に、XForwardedForConfig パラメーターを更新して、ヘッダーフィールドを追加、保持、または削除します。