Перейти к содержанию

Cloudflare Universal SSL не покрывает третий уровень поддомена#

Типичная ситуация: купили домен example.com, поставили под Cloudflare с бесплатным планом, ожидаете, что любой поддомен через CF будет автоматически работать по HTTPS. Для vpn.example.com работает. А для node.vpn.example.com - падает с TLS-ошибкой еще до того, как Cloudflare успевает применить любые правила.

В чем суть#

Cloudflare Free / Universal SSL выдает сертификат только на корень зоны и один уровень wildcard - то есть example.com и *.example.com. Все, что глубже (*.vpn.example.com - это третий уровень), бесплатным сертификатом не покрывается.

Браузер при заходе на node.vpn.example.com через CF-прокси получает sslv3 alert handshake failure или unable to verify the first certificate - сам TLS handshake не проходит. Никакие Cloudflare Rules, Workers или Page Rules не применяются, потому что они работают уже после установленного TLS.

Как с этим жить#

Три варианта обхода, по убыванию частоты использования.

Вариант 1. Свой обратный прокси без CF на этом поддомене#

Поставить отдельный VPS с Nginx Proxy Manager или nginx с certbot. В DNS этот поддомен направить на IP прокси без orange cloud (grey cloud - DNS-only, без проксирования). На прокси выпустить Let's Encrypt cert через DNS-01 challenge на нужный wildcard. С прокси уже разруливать поддомены любой глубины.

Вариант 2. Advanced Certificate Manager#

В Cloudflare есть Advanced Certificate Manager - 10 USD/мес за зону. Позволяет заказать сертификат на любую глубину поддомена. Покупается через панель CF в разделе SSL/TLS → Edge Certificates → Advanced Certificate Manager.

Вариант 3. Business-план Cloudflare#

Custom SSL и Custom Hostnames в Business-плане позволяют то же самое. Дороже Advanced Certificate Manager, но включает много остального.

Чего не делать#

  • Не пытаться добавить третий уровень через Cloudflare Rules - правила применяются после TLS, а здесь падает сам TLS.
  • Не пытаться "разрешить" сертификат через DNS-настройки - Universal SSL это не настройка, а лимит плана.
  • Не идти в CF Page Rules с редиректами на третьем уровне - редирект не дойдет до выполнения, потому что соединение оборвется раньше.

Когда нужен HTTPS на третьем уровне поддомена (<что-то>.vpn.example.com) - сразу проектируйте обход через свой прокси, не пытайтесь добиться этого на edge Cloudflare с бесплатным планом.

Источники#

На основе опыта автора hiddify-faq.


Не помогло или есть уточняющий вопрос - заходите в русское сообщество @hiddify_rus.