Wildcard SSL-сертификат защищает домен и все его поддомены одним сертификатом. Вместо получения отдельных сертификатов для www.example.com, blog.example.com и api.example.com, один wildcard-сертификат *.example.com покрывает их все.
Как работают wildcard-сертификаты
Символ подстановки * соответствует любому поддомену одного уровня:
| Сертификат | Покрывает | Не покрывает |
|---|---|---|
*.example.com | www.example.com, blog.example.com, api.example.com, anything.example.com | example.com (корневой домен), sub.blog.example.com (вложенный) |
*.example.com + example.com | Все поддомены + корневой домен | Вложенные поддомены |
*.sub.example.com | a.sub.example.com, b.sub.example.com | sub.example.com, example.com |
Ключевое ограничение: wildcard покрывает только один уровень. *.example.com НЕ покрывает a.b.example.com.
Wildcard и мультидоменный (SAN)
| Wildcard | Мультидоменный (SAN) | |
|---|---|---|
| Покрывает | Все поддомены одного уровня | Конкретные перечисленные домены |
| Гибкость | Любой поддомен работает автоматически | Каждый домен нужно указать явно |
| Новые поддомены | Покрыты мгновенно | Требуется новый сертификат |
| Кросс-доменный | Нет (один базовый домен) | Да (example.com + other.com) |
| Требуется DNS-01 | ✅ Да | Нет (HTTP-01 или DNS-01) |
Используйте wildcard, когда: у вас много поддоменов или вы часто добавляете новые. Используйте SAN, когда: у вас небольшой фиксированный набор конкретных доменов/поддоменов.
Когда использовать wildcard-сертификат
Подходящие случаи:
- Вы используете много поддоменов (
app.,api.,docs.,blog.,staging.и т.д.) и не хотите управлять отдельным сертификатом для каждого - Вы часто добавляете новые поддомены — они покрываются автоматически без перевыпуска
- Среды разработки/тестирования, где названия поддоменов часто меняются
Когда wildcard не подходит:
- Вам нужно покрыть разные базовые домены (
example.com+example.org) — используйте SAN-сертификат - Вам нужна изоляция поддоменов — если ключ одного поддомена скомпрометирован, wildcard-сертификат покрывает все поддомены
- Вы не можете изменять DNS-записи — для выдачи wildcard требуется DNS-01, что подразумевает доступ к DNS
Соображения безопасности
Wildcard-сертификат означает, что один закрытый ключ защищает все поддомены. При компрометации ключа злоумышленник может представляться любым поддоменом, а не только одним.
Меры защиты:
- Ограничьте доступ к закрытому ключу — только серверы, которым он нужен, должны иметь файл ключа
- Используйте краткосрочные сертификаты — 90-дневный срок действия Let’s Encrypt ограничивает окно уязвимости
- Рассмотрите отдельные сертификаты для поддоменов с повышенной безопасностью (например,
admin.example.comможет заслуживать собственного сертификата)
Получение бесплатного wildcard-сертификата
Let’s Encrypt поддерживает wildcard-сертификаты через DNS-01 challenge бесплатно. Большинство конкурентов (ZeroSSL, SSL For Free) ограничивают wildcard платными тарифами.
С GetHTTPS:
- Введите
*.example.com(+example.com, если хотите покрыть корневой домен) - Добавьте TXT-запись DNS, предоставленную GetHTTPS
- Дождитесь распространения DNS (GetHTTPS предварительно проверяет это за вас)
- Подтвердите и скачайте файлы сертификата
Полное пошаговое руководство по wildcard →
Установка wildcard-сертификата
Так же, как и любого другого сертификата — сервер не знает, что это wildcard:
Nginx:
server {
listen 443 ssl http2;
server_name *.example.com example.com;
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
}
Apache:
<VirtualHost *:443>
ServerName example.com
ServerAlias *.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/cert.pem
SSLCertificateKeyFile /etc/ssl/privkey.pem
SSLCertificateChainFile /etc/ssl/chain.pem
</VirtualHost>
Часто задаваемые вопросы
Почему нельзя использовать HTTP-01 для wildcard?
HTTP-01 валидирует конкретный хостнейм, размещая файл по адресу http://hostname/.well-known/acme-challenge/.... Wildcard покрывает бесконечное количество поддоменов — нет единого сервера, на который можно разместить файл. DNS-01 доказывает контроль над всем доменом через TXT-запись на уровне зоны.
*.example.com покрывает example.com?
Нет. Корневой домен является отдельным. Добавьте и *.example.com, и example.com в запрос на сертификат. GetHTTPS и Certbot оба поддерживают это в одном сертификате.
Можно ли получить бесплатный wildcard от ZeroSSL?
Нет. ZeroSSL ограничивает wildcard-сертификаты платными тарифами ($10/месяц+). Let’s Encrypt предлагает wildcard бесплатно.
Можно ли иметь несколько wildcard-сертификатов для одного домена?
Да. Технических ограничений нет. Вы можете иметь *.example.com и *.staging.example.com как отдельные сертификаты. Лимит Let’s Encrypt — 50 сертификатов на зарегистрированный домен в неделю.
Wildcard-сертификат покрывает вложенные поддомены?
Нет. *.example.com покрывает www.example.com и api.example.com, но НЕ dev.api.example.com. Для вложенных поддоменов нужен отдельный wildcard, например *.api.example.com.
Как проверить, работает ли wildcard-сертификат для конкретного поддомена?
Направьте DNS поддомена на ваш сервер, затем проверьте:
echo | openssl s_client -connect subdomain.example.com:443 -servername subdomain.example.com 2>/dev/null | openssl x509 -noout -subject -dates
Сертификат должен показать CN=*.example.com или *.example.com в поле SAN. Если вы получаете ошибку подключения, DNS поддомена не указывает на сервер, на котором установлен wildcard-сертификат.
Можно ли использовать wildcard-сертификат на нескольких серверах?
Да. Установите те же fullchain.pem и privkey.pem на каждый сервер, обслуживающий поддомены. Сертификат не знает, на каком сервере он установлен — он просто валидирует имя хоста.