Когда вы используете Cloudflare в качестве CDN/прокси, ваши посетители подключаются к граничным серверам Cloudflare. Но что происходит с соединением между Cloudflare и вашим origin-сервером? Без сертификата на origin-сервере это соединение может быть незашифрованным — что сводит на нет смысл HTTPS.
Режимы SSL Cloudflare
| Режим | Посетитель → Cloudflare | Cloudflare → Origin | Безопасность |
|---|---|---|---|
| Off | HTTP | HTTP | ❌ Без шифрования |
| Flexible | HTTPS ✅ | HTTP ❌ | ⚠️ Ложное чувство безопасности |
| Full | HTTPS ✅ | HTTPS (без проверки) | ⚠️ Зашифровано, но без валидации сертификата |
| Full (Strict) | HTTPS ✅ | HTTPS (с проверкой) ✅ | ✅ Рекомендуется |
Режим «Flexible» опасен. Ваши посетители видят замочек, но соединение Cloudflare→origin — это обычный HTTP. Любой, кто находится на этом сетевом пути, может прочитать трафик. Всегда используйте Full (Strict).
Настройка Full (Strict) с сертификатом Let’s Encrypt
Лучший подход: установите настоящий, публично доверенный сертификат на origin-сервер и включите Full (Strict).
Шаг 1: Получите сертификат Let’s Encrypt
Используйте GetHTTPS для получения бесплатного сертификата для вашего домена. Вам нужно временно отключить прокси Cloudflare (серое облако в настройках DNS) для прохождения HTTP-01 проверки до вашего origin-сервера, или используйте DNS-01, который работает в любом случае.
Метод DNS-01 (без изменения прокси):
- В GetHTTPS выберите DNS-01 challenge
- Добавьте TXT-запись
_acme-challengeв DNS Cloudflare - Подтвердите и скачайте сертификат
Метод HTTP-01:
- В DNS Cloudflare нажмите на оранжевое облако → серое облако (DNS only) для вашего домена
- Пройдите HTTP-01 проверку в GetHTTPS
- После получения сертификата снова включите оранжевое облако (proxied)
Шаг 2: Установите на origin-сервер
Установите сертификат на Nginx или Apache обычным способом.
Шаг 3: Включите Full (Strict) в Cloudflare
- Перейдите в панель управления Cloudflare → ваш домен
- SSL/TLS → Overview
- Выберите Full (Strict)
Теперь Cloudflare будет проверять наличие действительного, доверенного сертификата на вашем origin-сервере перед подключением.
Альтернатива: сертификат Cloudflare Origin CA
Cloudflare предлагает собственные сертификаты Origin CA — бесплатные сертификаты, которым доверяет только Cloudflare, но не браузеры напрямую.
Как получить
- Панель управления Cloudflare → SSL/TLS → Origin Server
- Нажмите Create Certificate
- Выберите тип ключа (RSA или ECDSA) и срок действия (до 15 лет)
- Скачайте сертификат и закрытый ключ
- Установите на origin-сервер
Плюсы и минусы по сравнению с Let’s Encrypt
| Cloudflare Origin CA | Let’s Encrypt (через GetHTTPS) | |
|---|---|---|
| Кому доверяет | Только Cloudflare | Все браузеры (публично доверенный) |
| Срок действия | До 15 лет | 90 дней |
| Нужно автообновление | Нет (длительный срок) | Да (каждые 60-90 дней) |
| Работает без Cloudflare | ❌ | ✅ |
| Прямой доступ из браузера | ❌ (показывает ошибку) | ✅ |
| Стоимость | Бесплатно | Бесплатно |
Используйте Cloudflare Origin CA, если ваш origin-сервер всегда находится за Cloudflare и вы хотите обойтись без управления обновлениями.
Используйте Let’s Encrypt, если вы можете обходить Cloudflare (обслуживание, миграция), вам нужен прямой доступ к origin-серверу или нужен сертификат, который работает везде.
Проверка работы Full (Strict)
После настройки убедитесь, что соединение полностью зашифровано:
- Панель управления Cloudflare → SSL/TLS → Overview должен показывать “Full (Strict)”
- Посетите ваш сайт → замочек должен показывать сертификат Cloudflare для посетителей
- Проверьте origin напрямую (в обход Cloudflare):
Должен вернуться валидный HTTPS-ответ с вашим сертификатом Let’s Encrypt (или Origin CA).curl -I --resolve yourdomain.com:443:YOUR_ORIGIN_IP https://yourdomain.com
Часто задаваемые вопросы
Почему бы просто не использовать режим Flexible?
Режим Flexible шифрует соединение посетитель→Cloudflare, но отправляет трафик от Cloudflare к вашему origin-серверу открытым текстом по HTTP. Это означает:
- Ваш интернет-провайдер, хостинг-провайдер или любой, кто находится в сети между граничным сервером Cloudflare и вашим сервером, может прочитать весь трафик
- Ваши посетители видят замочек и считают, что они защищены, но бэкенд-соединение не зашифровано
- Это особенно опасно для страниц входа, платёжных форм или любых конфиденциальных данных
Должен ли origin-сертификат точно совпадать с моим доменом?
Для режима Full (Strict) — да, origin-сертификат должен быть действительным для домена, к которому подключается Cloudflare. Сертификат Let’s Encrypt для example.com подойдёт. Самоподписанный сертификат или сертификат для другого домена — нет.
Можно ли использовать wildcard origin-сертификат?
Да. Wildcard-сертификат для *.example.com на вашем origin-сервере работает с Full (Strict) для любого поддомена, проксируемого через Cloudflare.
Что произойдёт, если origin-сертификат истечёт?
Режим Full (Strict) Cloudflare проверяет действительность сертификата. Если ваш origin-сертификат истечёт, Cloudflare не сможет установить безопасное соединение и ваш сайт покажет ошибку 526 (Invalid SSL Certificate). Настройте мониторинг срока действия, чтобы предотвратить это.