• No : 1582
  • 公開日時 : 2026/10/01 10:00
  • 印刷

421 Misdirected Request が表示されます。回避策はありますか?

カテゴリー : 

回答

2024年10月2日以降、Fastly社のドメインフロンティング対策(※)によって、
SNIに値の入っていないリクエストやSNIの値がホストヘッダーと異なるリクエストはブロック対象となります。
※ドメインフロンティングを使用した不正なサーバーへのアクセスをブロックすることが目的です。
 
ドメインフロンティング対策によってブロックされた場合、キャッシュサーバーよりレスポンスコード421が返却されます。
また、ブラウザ上では、下記のようなエラーメッセージが表示されます。
Requested host does not match any Subject Alternative Names (SANs) on TLS certificate [xxxxx] in use with this connection.
Visit https://docs.fastly.com/en/guides/common-400-errors#error-421-misdirected-request for more information.
 

■確認方法
■対応策
■条件に合致するケースの例


■確認方法

ドメインフロンティング対策のブロック対象となる通信(421)があるか確認する際は、次の方法をご利用ください。
 

《確認方法1》レポートを確認する

  1. クラウドコンソールの [CDN] > [レポート] より
    「CDNが返したHTTPステータスコード」を選択し、「status_4xx」が増加していないか確認をお願いします。
     
  2. 「status_4xx」には421以外のステータスコードも含まれるため、APIを利用して正確に確認をお願いします。

    ▼APIの利用方法は以下を参照してください。
    https://tools.idcf.jp/api-docs/apis/?id=docs_cdn_request

    ▼APIの詳細は以下のドキュメントを参照してください。
    https://www.fastly.com/documentation/reference/api/metrics-stats/historical-stats/
 
《確認方法2》ログストリーミング機能で取得したログを確認する
  • ログストリーミング機能を利用することで、リクエストに含まれるSNIの値やステータスの確認が可能です。次のFAQに確認の手順を記載しておりますので、ご参照ください。

    ※ログは、ログストリーミング機能を設定した時点から取得されます。

    ▼クライアントからのリクエストに含まれるSNIの値は確認できますか?
    https://faq.idcf.jp/faq/show/445?site_domain=default

■対応策

ドメインフロンティング対策により、必要な通信がブロックされている場合は、次の対応策をご実施ください。
 
《対応策》SNIの値を見直す
持ち込み証明書をご利用、且つクライアントから配信ドメインへのリクエストが下記いずれかの条件に該当する場合、ドメインフロンティング対策のブロック対象となります。
  • SNIの値が空の場合

    お客様の配信ドメインへSNI非対応のクライアントがアクセスしている場合、SNI対応のクライアントでアクセスするようご案内をお願いします。

  • SNIの値とホストヘッダーが異なる場合

    同じ値を設定してリクエストをお願いします。

  • アンダースコアをドメインのホスト名に利用している場合

    利用しないようにお願いします。

 
※キャッシュサーバーとオリジンサーバー間の通信ではありません。
※SNIの値が空になる場合や、SNIの値とホストヘッダーが異なる場合の具体的な例は、本ページ下部の「■条件に合致するケースの例」をご確認ください。
 

■条件に合致するケースの例

SNIの値が空になる場合や、SNIの値とホストヘッダーが異なる場合の具体的な例について、Fastly社で把握している原因と対策例を以下にご案内します。

  • SNIの値が空の場合
    原因:クライアント側でNGINXをプロキシサーバーとして利用している。
    対策:NGINXではデフォルトでSNIを含まないため、
       「proxy_ssl_server_name off;」を「proxy_ssl_server_name on;」に変更する。

    原因:ネットワーク機器等でヘルスチェックをおこなっている。
    対策:ヘルスチェックのリクエストにSNIが含まれない場合(※)があるため、
       ネットワーク機器等のSNIの設定値をご確認いただき、持ち込み証明書のコモンネーム
       またはSANに記載のドメインをSNIに設定する。

    原因:クライアントがSNI非対応ブラウザ(フィーチャーフォン、Android2.x以前の端末など)を利用している。
    対策:SNI非対応ブラウザを使用しない。

    ※クラウドGSLBのヘルスチェックでは、リクエストにSNIが含まれない場合があります。
     詳細は次のFAQの注意事項をご参照ください。

     ▼GSLBのヘルスチェックはSNIが含まれますか?
     https://faq.idcf.jp/faq/show/1652?site_domain=default
     
  • SNIの値とホストヘッダーが異なる場合
    原因:持ち込み証明書のコモンネーム、またはSANに記載されていないドメインを指定している。
    対策:持ち込み証明書のコモンネームまたはSANに記載のドメインをSNIに設定する。

    原因:SNIにIPアドレスを指定している。
       ※ネットワーク機器等でヘルスチェックを行っている場合、
        SNIにIPアドレスが指定される場合があります。
    対策:持ち込み証明書のコモンネームまたはSANに記載のドメインをSNIに設定する。