Flexible SSL ошибка — как исправить проблемы Cloudflare с HTTPS

Flexible SSL ошибка в Cloudflare обычно появляется после включения HTTPS, когда сайт начинает открываться с циклическими редиректами, mixed content или вообще перестаёт нормально загружаться. Чаще всего пользователь видит ERR_TOO_MANY_REDIRECTS, предупреждения о небезопасных ресурсах или странное поведение после перехода на HTTPS.

Главная причина в том, что режим Flexible шифрует соединение только между браузером и Cloudflare, а между Cloudflare и вашим сервером оставляет обычный HTTP. Именно из-за этого режим часто конфликтует с редиректами и настройками origin-сервера. :contentReference[oaicite:1]{index=1}

Быстрое решение

  • Проверьте, какой режим выбран в Cloudflare → SSL/TLS.
  • Если на сервере уже есть SSL-сертификат, переключитесь с Flexible на Full или Full (strict).
  • Уберите принудительный редирект HTTP → HTTPS на origin, если временно оставляете Flexible.
  • Проверьте Always Use HTTPS и не дублируйте такие же редиректы в .htaccess, Nginx и WordPress.
  • Исправьте mixed content: все картинки, скрипты и CSS должны грузиться по HTTPS.
  • Очистите кэш Cloudflare, сайта и браузера после изменений.

Что такое Flexible SSL в Cloudflare

Режим Flexible в Cloudflare означает частичную защиту. Посетитель подключается к Cloudflare по HTTPS, но Cloudflare подключается к origin-серверу по обычному HTTP. Поэтому сертификат на origin в этом режиме не обязателен. :contentReference[oaicite:2]{index=2}

На первый взгляд это удобно: можно быстро включить HTTPS без настройки SSL на хостинге. Но именно из-за отсутствия HTTPS между Cloudflare и origin режим Flexible часто создаёт технические и SEO-проблемы, особенно на WordPress-сайтах и при жёстких редиректах.

Почему Flexible SSL часто вызывает ошибки

Главная проблема Flexible в том, что Cloudflare и origin начинают «думать» по-разному. Cloudflare видит внешний HTTPS, а сервер получает внутренний HTTP. Если origin настроен принудительно переводить HTTP в HTTPS, получается замкнутый цикл. Cloudflare сам описывает этот сценарий как типичную причину ERR_TOO_MANY_REDIRECTS. :contentReference[oaicite:3]{index=3}

Кроме redirect loop, появляются и другие проблемы:

  • mixed content на страницах;
  • неправильные канонические URL;
  • ошибки в WordPress после принудительного HTTPS;
  • конфликт с плагинами SSL и кэша;
  • частично небезопасная загрузка ресурсов. :contentReference[oaicite:4]{index=4}

Основные симптомы Flexible SSL ошибки

  • ERR_TOO_MANY_REDIRECTS после включения Cloudflare;
  • сайт открывается по HTTPS, но часть ресурсов грузится по HTTP;
  • браузер показывает mixed content warnings;
  • админка WordPress работает нестабильно;
  • сайт то открывается, то уходит в цикл редиректов;
  • канонический URL и реальные URL не совпадают.

Когда Flexible SSL можно использовать, а когда лучше не надо

Cloudflare прямо рекомендует, если это возможно, использовать Full или Full (strict), а не Flexible, чтобы защитить соединение с origin и избежать более слабой схемы. :contentReference[oaicite:5]{index=5}

Flexible имеет смысл только как временный компромисс, если на origin ещё нет сертификата. Для нормального рабочего сайта, особенно на WordPress, интернет-магазина, блога или affiliate-проекта, безопаснее и стабильнее переходить на Full или Full (strict).

Как исправить Flexible SSL ошибку: пошаговая инструкция

1. Проверьте текущий SSL/TLS mode

Откройте панель Cloudflare → SSL/TLS и посмотрите, включён ли режим Flexible. Если да, сначала определите, есть ли на origin рабочий SSL-сертификат.

2. Если на сервере уже есть SSL, переключитесь на Full или Full (strict)

Это самый правильный и самый частый фикс. Cloudflare рекомендует по возможности использовать именно Full или Full (strict). Режим Full (strict) дополнительно требует корректный сертификат на origin. :contentReference[oaicite:6]{index=6}

Если у вас уже установлен Let’s Encrypt, Origin CA или другой нормальный сертификат, переход с Flexible на Full обычно сразу убирает redirect loop.

3. Если вы временно оставляете Flexible, уберите HTTPS-редирект на origin

Cloudflare официально указывает: при режиме Flexible redirect loop возникает, если origin автоматически перенаправляет все HTTP-запросы на HTTPS. :contentReference[oaicite:7]{index=7}

Проверьте и временно отключите:

  • редиректы в .htaccess;
  • редиректы в Nginx;
  • форсирование HTTPS в панели хостинга;
  • плагины Really Simple SSL и аналоги;
  • жёстко прописанные редиректы в functions.php.

4. Проверьте Always Use HTTPS

Cloudflare рекомендует для принудительного HTTPS использовать функцию Always Use HTTPS и отдельно предупреждает, что не стоит дублировать такие же редиректы на origin, потому что это может вызвать redirect loop. :contentReference[oaicite:8]{index=8}

Для диагностики оставьте только один источник принудительного HTTPS: либо Cloudflare, либо origin. На практике удобнее держать это на стороне Cloudflare.

5. Исправьте mixed content

Cloudflare объясняет, что mixed content возникает, когда HTTPS-страница тянет картинки, CSS, JS или другие ресурсы по HTTP. :contentReference[oaicite:9]{index=9}

Проверьте:

  • все изображения в контенте;
  • CSS и JS из темы;
  • старые абсолютные ссылки в базе данных;
  • рекламные скрипты и партнёрские виджеты;
  • URL в настройках WordPress.

Все ресурсы должны загружаться по HTTPS или по относительным URL.

6. Проверьте WordPress Address и Site Address

В WordPress зайдите в Настройки → Общие и убедитесь, что оба адреса сайта указаны в правильной HTTPS-версии, если вы реально переводите сайт на HTTPS. Иначе WordPress может сам создавать неправильные редиректы или mixed content.

7. Очистите кэш после исправлений

После изменения SSL-режима и редиректов очистите:

  • Cloudflare cache;
  • кэш плагинов;
  • кэш сервера;
  • cookies и кэш браузера.

Без этого вы можете продолжать видеть старую ошибку даже после реального исправления.

8. Если сертификата на origin нет — установите его

Самый надёжный путь — поставить сертификат на origin и отказаться от Flexible. Для этого подойдёт публичный сертификат или Cloudflare Origin CA. После этого можно безопасно перейти на Full или Full (strict). :contentReference[oaicite:10]{index=10}

Какой режим лучше вместо Flexible

Если коротко:

  • Flexible — временный компромисс;
  • Full — нормальный рабочий вариант, если HTTPS на origin уже есть;
  • Full (strict) — лучший вариант, если сертификат origin валиден и настроен правильно. :contentReference[oaicite:11]{index=11}

Для SEO-сайта, WordPress-блога и affiliate-проекта правильнее уходить именно в Full (strict), когда это возможно.

Advanced troubleshooting

  1. Проверьте цепочку редиректов в DevTools браузера.
  2. Сравните работу сайта в режиме proxy и DNS only.
  3. Проверьте заголовок X-Forwarded-Proto, если используете reverse proxy.
  4. Убедитесь, что плагины кэша не переписывают схему URL.
  5. Проверьте канонические URL и Open Graph URL на страницах.
  6. Проверьте, не остались ли старые HTTP-ссылки в базе данных WordPress.
  7. Если после перехода на Full появился SSL-сбой, проверьте сертификат origin.

Как избежать Flexible SSL ошибок в будущем

  • не используйте Flexible как постоянное решение для рабочего сайта;
  • настройте SSL-сертификат на origin заранее;
  • используйте только одну схему принудительного HTTPS;
  • не смешивайте Cloudflare-редиректы и дублирующие редиректы на сервере;
  • после миграции сайта проверяйте HTTP, HTTPS, www и non-www отдельно;
  • сканируйте сайт на mixed content после любых SSL-изменений.

Когда обращаться в поддержку

  • если вы уже переключились на Full, но сайт всё равно не работает;
  • если redirect loop остался после удаления origin-редиректов;
  • если у вас нет доступа к настройкам Nginx, Apache или панели хостинга;
  • если SSL на origin установлен, но Cloudflare продолжает выдавать ошибки.

FAQ

Почему Flexible SSL вызывает ERR_TOO_MANY_REDIRECTS?

Потому что Cloudflare идёт к origin по HTTP, а origin может отправлять этот HTTP обратно на HTTPS. Cloudflare прямо описывает это как типичный redirect loop для режима Flexible. :contentReference[oaicite:12]{index=12}

Нужен ли сертификат на origin для Flexible?

Нет, для Flexible сертификат на origin не обязателен, потому что соединение между Cloudflare и origin идёт по HTTP. :contentReference[oaicite:13]{index=13}

Какой режим лучше: Flexible или Full?

Если на origin можно поставить сертификат, лучше использовать Full или Full (strict). Cloudflare рекомендует именно эти режимы, когда это возможно. :contentReference[oaicite:14]{index=14}

Может ли Flexible вызывать mixed content?

Да. Особенно если сайт и его ресурсы всё ещё используют HTTP-ссылки внутри HTML, CSS, JS или базы данных. Mixed content — это загрузка HTTP-ресурсов на HTTPS-странице. :contentReference[oaicite:15]{index=15}

Что лучше для принудительного HTTPS: Cloudflare или origin?

Cloudflare рекомендует не дублировать HTTPS-редиректы на origin, потому что это может вызвать loop. На практике проще держать одну понятную схему редиректа через Cloudflare. :contentReference[oaicite:16]{index=16}

Вывод

Flexible SSL ошибка почти всегда связана с тем, что HTTPS работает только между посетителем и Cloudflare, а origin продолжает жить по HTTP. Из-за этого появляются redirect loop, mixed content и конфликты с WordPress или серверными редиректами. :contentReference[oaicite:17]{index=17}

Самое надёжное решение — уйти с Flexible на Full или Full (strict), поставить нормальный сертификат на origin и оставить только одну схему принудительного HTTPS. Обычно после этого сайт начинает работать стабильно и без циклических редиректов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *