Настройка Wildcard DNS
Wildcard DNS позволяет создавать поддомены арендаторов вида acme.yourdomain.com, techcorp.yourdomain.com и т.д. Это опционально — FeedbackPulse прекрасно работает с URL-адресами на основе слагов (например, /wall/acme-corp) без wildcard DNS.
Нужен ли мне Wildcard DNS?
| Сценарий | Нужен Wildcard DNS? |
|---|---|
Арендаторы используют публичные страницы на основе слагов (/wall/acme-corp) | Нет |
Арендаторы хотят собственный поддомен (acme.yourdomain.com) | Да |
Арендаторы приносят собственный домен (feedback.acme.com) | Нет (используйте CNAME) |
Что потребуется
- Wildcard DNS A-запись:
*.yourdomain.com→ IP вашего сервера - Wildcard SSL-сертификат: покрывает
*.yourdomain.com - Конфигурация веб-сервера: принимает все поддомены
Шаг 1: Добавление DNS-записи
Перейдите в панель управления DNS вашего регистратора и добавьте:
| Тип | Имя/хост | Значение | TTL |
|---|---|---|---|
| A | * | 123.456.789.0 (IP вашего сервера) | 300 |
Вам также нужна обычная A-запись для корневого домена:
Тип Имя/хост Значение A @123.456.789.0
Инструкции для конкретных провайдеров
Cloudflare
- Войдите в Cloudflare Dashboard
- Выберите ваш домен
- Перейдите в DNS → Records
- Нажмите Add Record
- Тип:
A| Имя:*| IPv4: IP вашего сервера | Proxy: DNS only (серое облако) - Нажмите Save
Важно: Для wildcard-поддоменов установите Cloudflare proxy в режим DNS only (серое облако), а не Proxied (оранжевое облако). Бесплатный план Cloudflare не проксирует wildcard-поддомены.
Namecheap
- Войдите → Domain List → Manage ваш домен
- Перейдите в Advanced DNS
- Нажмите Add New Record
- Тип:
A Record| Хост:*| Значение: IP вашего сервера | TTL: Automatic - Сохраните
GoDaddy
- Войдите → My Products → DNS для вашего домена
- Нажмите Add Record
- Тип:
A| Имя:*| Значение: IP вашего сервера | TTL: 600 - Сохраните
Google Domains / Google Cloud DNS
- Перейдите на Google Domains
- Выберите ваш домен → DNS
- В разделе Custom Records добавьте:
- Хост:
*| Тип:A| Данные: IP вашего сервера - Сохраните
AWS Route 53
- Перейдите в Route 53 → Hosted Zones → выберите ваш домен
- Нажмите Create Record
- Имя записи:
*| Тип записи:A - Значение: IP вашего сервера | TTL:
300 - Нажмите Create Records
DigitalOcean DNS
- Перейдите в Networking → Domains
- Выберите ваш домен
- Добавьте: Тип
A| Имя хоста*| Направить на: IP вашего сервера | TTL:300
Hetzner DNS
- Перейдите в Hetzner DNS Console
- Выберите вашу зону
- Добавьте запись: Тип
A| Имя*| Значение: IP вашего сервера
Шаг 2: Получение Wildcard SSL-сертификата
Вариант А: Let's Encrypt через DNS Challenge (бесплатно)
Wildcard-сертификаты от Let's Encrypt требуют DNS-01 challenge (не HTTP):
# Установить Certbot с DNS-плагином для вашего провайдера
# Пример: Cloudflare
sudo apt install certbot python3-certbot-dns-cloudflare
# Создать файл учётных данных Cloudflare
sudo mkdir -p /etc/letsencrypt
sudo nano /etc/letsencrypt/cloudflare.ini
Добавьте ваш API-токен Cloudflare:
dns_cloudflare_api_token = your_cloudflare_api_token_here
sudo chmod 600 /etc/letsencrypt/cloudflare.ini
# Получить wildcard-сертификат
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d yourdomain.com \
-d "*.yourdomain.com"
DNS-плагины для других провайдеров
| Провайдер | Плагин Certbot | Установка |
|---|---|---|
| Cloudflare | python3-certbot-dns-cloudflare | sudo apt install python3-certbot-dns-cloudflare |
| Route 53 | python3-certbot-dns-route53 | sudo apt install python3-certbot-dns-route53 |
| DigitalOcean | python3-certbot-dns-digitalocean | sudo apt install python3-certbot-dns-digitalocean |
| Google Cloud | python3-certbot-dns-google | sudo apt install python3-certbot-dns-google |
Вариант Б: Ручной DNS Challenge
Если ваш DNS-провайдер не имеет плагина Certbot:
sudo certbot certonly --manual --preferred-challenges dns \
-d yourdomain.com -d "*.yourdomain.com"
Certbot попросит вас создать TXT-запись. Следуйте инструкциям.
Предупреждение о ручном challenge: Вам нужно будет обновлять вручную каждые 90 дней и каждый раз обновлять DNS TXT-запись.