До основного вмісту

Wildcard DNS записи: налаштування піддоменів за маскою

Домени · 19.04.2026 · 4 хв читання
Ілюстрація до статті «Wildcard DNS записи: налаштування піддоменів за маскою»

Wildcard DNS-запис (*.example.com) дозволяє направити будь-який піддомен на ту саму IP-адресу або hostname. Це потрібно для WordPress Multisite, SaaS-застосунків, де кожен користувач отримує свій піддомен.

Типовий сценарій — платформа на кшталт інтернет-магазинів на власному рушії, де в кожного клієнта адреса вигляду клієнт.platform.com. Без wildcard довелося б створювати окремий A-запис на кожного нового клієнта вручну; з wildcard достатньо один раз налаштувати DNS, а далі маршрутизацію за іменем піддомену робить уже застосунок на сервері, а не DNS-зона.

Створення wildcard запису

У cPanel → Zone Editor

Додайте A-запис:

Ім'я (Name): *
Тип: A
Значення: 192.168.1.100 (ваша IP-адреса)

У Cloudflare

Type: A
Name: *
Content: 192.168.1.100
Proxy status: DNS only (сіра іконка) або Proxied
✅ Wildcard запис працює тільки для одного рівня: *.example.com не покриває sub.sub.example.com.

Не всі DNS-панелі однаково приймають символ * у полі імені. Базові безкоштовні панелі деяких реєстраторів обмежують набір допустимих записів і просто не показують wildcard як опцію — у такому разі зону переносять на DNS-провайдера з повною підтримкою, наприклад на панель хостингу або на Cloudflare, замість того щоб шукати обхідний шлях.

Wildcard SSL-сертифікат

Для HTTPS на всіх піддоменах потрібен wildcard SSL:

# Certbot wildcard через DNS-01 challenge
certbot certonly \
  --manual \
  --preferred-challenges dns \
  -d "*.example.com" \
  -d "example.com"

# Автоматично через acme.sh + Cloudflare API
acme.sh --issue \
  --dns dns_cf \
  -d "*.example.com" \
  -d "example.com"
⚠️ Wildcard сертифікати Let's Encrypt вимагають DNS-01 challenge — потрібен API доступ до DNS-провайдера для автопродовження.

Сертифікати Let's Encrypt живуть лише 90 днів, тому ручний запуск --manual із прикладу вище підходить тільки для разової перевірки. У продакшені DNS-01 challenge налаштовують через плагін конкретного DNS-провайдера (dns_cf для Cloudflare, аналогічні — для інших), щоб acme.sh або certbot могли самі додавати й видаляти TXT-запис для підтвердження при кожному автопродовженні без участі людини.

Застосування у WordPress Multisite

# У /etc/apache2/sites-available/multisite.conf
ServerName example.com
ServerAlias *.example.com

# Або в Nginx
server {
    server_name ~^(.+)\.example\.com$;
    set $subdomain $1;
}

Перевірка wildcard запису

# Мають резолвитися однаково:
dig anything.example.com A
dig test123.example.com A
dig myapp.example.com A

Перевіряти варто саме на кількох випадкових іменах, а не на одному: якщо в зоні випадково залишився старий явний запис для конкретного піддомену, тільки тест на трьох-чотирьох різних іменах покаже розбіжність — запит до того самого імені зі старим явним записом поверне інший IP, ніж запит до довільного імені.

Часті помилки wildcard-записів

ПоведінкаПричинаРішення
Різні піддомени резолвляться по-різному, хоча wildcard створеноІснує окремий явний запис для конкретного піддомену, наприклад blog.example.com A ...Перевірити повний список записів зони на конфлікт із wildcard — явний запис завжди пріоритетніший
sub.sub.example.com не резолвитьсяWildcard покриває лише один рівень вкладеності згідно з RFC 1034Створити окремий wildcard *.sub.example.com або явний запис для цього імені
Let's Encrypt: Invalid response ... urn:ietf:params:acme:error:dnsВикористано HTTP-01 challenge замість обов'язкового для wildcard DNS-01Перемкнутися на DNS-01, як у прикладі certbot/acme.sh вище
MX-запис не працює через wildcardСтандарт не рекомендує покладатися на wildcard для MX, багато поштових систем ігнорують такі відповідіСтворити явний MX-запис для конкретного піддомену пошти

Wildcard і явні записи: пріоритет

СитуаціяЯкий запис перемагаєПричина
Є wildcard *.example.com A і точний запис blog.example.com Aточний записDNS завжди віддає перевагу більш специфічному збігу імені
Є wildcard *.example.com і CNAME на sub.example.comCNAMEтой самий принцип специфічності імені
Є wildcard верхнього рівня, але не для *.sub.example.comжоден — NXDOMAIN, якщо немає явного записуwildcard не успадковується на глибший рівень вкладеності

Коли wildcard не підходить

  • Потрібен явний список дозволених піддоменів для застосунку з перевіркою прав доступу — wildcard у DNS не замінює перевірку авторизації на рівні застосунку
  • Частина піддоменів має вказувати на різні IP або сервіси — тоді потрібні окремі A/CNAME-записи, wildcard перекриє їх лише як fallback для неврахованих імен
  • Потрібна прив'язка піддомену до пошти (MX) — використовуйте окремий MX-запис, не покладайтеся на wildcard, див. налаштування MX для пошти
  • SSL потрібен лише для 2–3 конкретних піддоменів — звичайний SAN-сертифікат на потрібні імена простіший у випуску, ніж wildcard з обов'язковим DNS-01, див. ACME DNS challenge для SSL
Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці