В режиме Flexible браузер подключается к Cloudflare по HTTPS, а Cloudflare обращается к origin по HTTP. Если сервер принудительно перенаправляет HTTP на HTTPS, прокси снова приходит по HTTP, и цикл повторяется.
Лучшее постоянное решение — настроить HTTPS на origin и переключиться на Full (strict). Перед изменением проверьте сертификат, порт 443 и правила firewall.
Что сделать в первую очередь
- Сохраните цепочку Location через curl без cookie.
- Проверьте текущий режим SSL/TLS в Cloudflare.
- Убедитесь, что origin отвечает по HTTPS напрямую с корректным Host.
- Проверьте Page Rules, Redirect Rules и правила приложения.
Почему возникает проблема
Симптом обычно появляется не из-за одной настройки. Сначала разделите путь данных на этапы и найдите место, где фактическое поведение расходится с ожидаемым.
- Flexible соединяется с origin по HTTP, а origin всегда требует HTTPS.
- Приложение не доверяет заголовку X-Forwarded-Proto от известного прокси.
- Одновременно действуют несколько конфликтующих правил редиректа.
- Cookie или настройка канонического URL переключает схему обратно.
Пошаговая диагностика
- Проследите каждый ответ 301 и 302 до повторения URL.
- Сравните запрос через Cloudflare и прямой запрос к origin.
- Проверьте scheme, Host и forwarded headers в журнале приложения.
- Временно отключайте правила по одному, сохраняя безопасный доступ.
- Проверьте канонический URL CMS и настройки HTTPS за reverse proxy.
Как исправить
Исправляйте подтвержденную первопричину и сохраняйте возможность отката. После каждого изменения повторяйте один и тот же контрольный сценарий, чтобы не спутать результат нескольких правок.
- Установите валидный сертификат на origin и откройте 443 только нужным источникам.
- Переключите Cloudflare на Full (strict).
- Настройте приложение доверять forwarded headers только от доверенного прокси.
- Оставьте одно понятное правило перенаправления на HTTPS.
- Очистите edge cache и тестовые cookie после изменения схемы.
Как проверить результат
- HTTP делает один переход на HTTPS, затем страница возвращает 200.
- HTTPS между Cloudflare и origin проходит строгую проверку сертификата.
- Админка, формы, API и статические файлы не создают дополнительных циклов.
Как не допустить повторения
- Используйте Full (strict) как рабочий режим.
- Документируйте, где именно выполняется канонический редирект.
- Мониторьте сертификат origin и срок его действия.
Частые вопросы
Можно ли оставить Flexible и убрать редирект на сервере?
Это может остановить цикл, но участок Cloudflare–origin останется без HTTPS. Для рабочего сайта лучше Full (strict).
Подойдет ли Cloudflare Origin Certificate?
Да, если к origin обращается Cloudflare и вы понимаете, что обычные браузеры такому сертификату напрямую не доверяют.
Когда стоит обратиться за помощью
Для диагностики достаточно домена, цепочки редиректов и обезличенной конфигурации прокси. Приватный ключ сертификата передавать нельзя.
Итог
Цикл исчезает, когда схема запроса однозначна на всех участках. Я могу настроить origin HTTPS, доверенные proxy headers и безопасные правила Cloudflare без простоя.