HTTP情報について
X-Forwarded-Protoとは
Proxy手前で使われたHTTP / HTTPSを伝えるHeaderを解説します。
更新日: 2026年10月9日
X-Forwarded-Protoは、Proxyへ到着した元のリクエストがHTTPとHTTPSのどちらだったかを後段へ伝えるためによく使われる非標準ヘッダーです。
何が分かるのか
リバースプロキシでTLSを終端し、アプリケーションへHTTPで中継する構成でも、元の外部接続がhttpsだったことを伝えられます。Redirect URLやSecure Cookieの判断に使われることがあります。
NetKarteでの見方
HTTP情報カードの「転送ヘッダー」でX-Forwarded-Proto行を読み、同じカードの「リクエスト」にあるProtocolと比較します。入力は不要です。前者は受信値、後者は信頼設定を適用した要約なので、同じ表示になるとは限りません。Protocolの判定では管理下Proxyからの値を考慮します。
注意点
信頼できない送信元の値をそのまま使うと、URL生成やSecurity判断を誤る可能性があります。Forwarded系情報と同様、どのProxyを信頼するかが重要です。
内部がHTTPでも外部がHTTPSの構成
ブラウザーからProxyまではHTTPS、ProxyからアプリケーションまではHTTPという構成があります。そのとき X-Forwarded-Proto: https を渡すのは、元の接続方式を伝えるためです。内部通信との違いだけで、外部接続も暗号化されていないとは言えません。
表示が食い違うとき
- アドレスバーの方式と、HTTP情報のX-Forwarded-Protoを確認します。
- NetKarteのProtocol表示と比較します。現在は転送情報を信頼する設定のときだけ、このヘッダーから方式を採用します。
- 不一致や判定不能なら、管理者がTLS終端位置、上書き設定、信頼設定を確認します。
Protocolの値は、証明書の有効性、暗号方式、すべての中継区間の安全性を検証した結果ではありません。利用者がヘッダーを追加して https に見せても、接続を暗号化することにはなりません。
参考資料
- IETF / RFC Editor: RFC 7239: Forwarded HTTP Extension (外部サイト)確認日: 2026-10-09
- MDN Web Docs: X-Forwarded-For (外部サイト)確認日: 2026-10-09
- nginx: Module ngx_http_proxy_module (外部サイト)確認日: 2026-10-09