EasyBot

EASYBOT GUIDE

Cloudflare利用時のERR_TOO_MANY_REDIRECTSを解消する方法

Cloudflareとオリジン間のHTTPS設定が原因で起きるリダイレクトループを、SSLモード、プロキシ、転送設定から解決します。

ERR_TOO_MANY_REDIRECTSは、ブラウザがリダイレクト先をたどり続けても最終ページへ到達できない状態です。Cloudflareとオリジンが別々にHTTPS転送を行う設定や、Flexible SSLが原因になることがあります。

転送経路を確認

HTTPからHTTPS、wwwからルートなど、どのURL間で転送を繰り返しているか確認します。ブラウザのキャッシュだけでなくcurlのLocationヘッダーも調べます。

  • 最初にアクセスしたURLと最終Locationを記録する
  • www有無とHTTP/HTTPSの組み合わせを試す
  • サーバーログで同じパスの往復を確認する

Cloudflare SSLモード

Flexibleでは利用者からCloudflareまではHTTPSでも、CloudflareからオリジンへHTTPで接続します。オリジンが常にHTTPSへ転送すると往復することがあるため、オリジン証明書を設定してFull (strict)を検討します。

  1. CloudflareのSSL/TLSモードを確認する
  2. オリジン証明書の有効性とホスト名を確認する
  3. HTTPS接続がオリジンまで通ることを確かめる

アプリのHTTPS認識

リバースプロキシ配下でアプリが元のHTTPSを認識できず、HTTPへ戻そうとする場合があります。信頼するプロキシ設定とForwardedヘッダーを確認します。

  • 信頼するプロキシの範囲を限定する
  • X-Forwarded-Protoの受け渡しを確認する
  • アプリの公開URL設定を正規ホストへ合わせる

ルールを一つに整理

Cloudflare、Caddy/Nginx、アプリそれぞれで同じ正規化ルールを重ねないようにします。修正後はCookieを消すかプライベートウィンドウで試します。

  • HTTPSと正規ホストへの転送担当を決める
  • 重複したPage Ruleやアプリ設定を確認する
  • 変更後に301/308の経路が一度で終わるか確認する