【CloudFront】HTTPリクエストのHostヘッダについて (カスタムオリジンを使用する場合)

ディストリビューションのビヘイビア設定 (Cache Based on Selected Request Headers) によって挙動が変わる。

1. Cache Based on Selected Request HeadersALL 、もしくは WhitelistHost ヘッダをオリジンサーバーへ転送するように設定した場合

CloudFront へのリクエスト時の Host の内容が、そのままオリジンサーバーに転送される。

2. それ以外の場合

CloudFront は、リクエストされたオブジェクトに関連付けられたオリジンのドメイン名に値を設定します。
カスタムオリジンの場合のリクエストとレスポンスの動作

先の例で言えば、CloudFront → オリジンサーバー へのHTTPリクエスト時は、 CloudFront においてオリジンのDNS名として設定した sv.example.comHost として使用されることになる。

ということは……

以下において注意が必要

  • ミドルウェアやアプリケーションにおけるホスト名の扱い
    • バーチャルホストや環境変数のホスト名・サーバー名
  • SSL証明書のコモンネーム (特に ACM の無料SSL証明書を使用するつもりの場合)
    • 1. の場合、CloudFront の証明書と同コモンネームの証明書をオリジンサーバーにも別途取得・設置する必要性がある
    • 2. の場合、CloudFront の証明書のコモンネームではなく、オリジンサーバーのDNS名で有効な証明書を設置しないと CloudFront にてエラーとなる