Wildcard SSL-сертификат (*.example.com) покрывает все поддомены одного уровня. Let's Encrypt выдаёт их бесплатно, но только через DNS-верификацию (не через HTTP). Это требует либо ручного добавления TXT-записи, либо автоматизации через DNS API.
Получение Wildcard через Certbot (ручной DNS)
certbot certonly --manual --preferred-challenges=dns -d example.com -d "*.example.com"
# Certbot попросит добавить TXT-запись:
# _acme-challenge.example.com → "значение"
# Добавьте запись в DNS-панели и нажмите Enter
Автоматизация через Cloudflare API (рекомендуется)
pip install certbot-dns-cloudflare
# Создать файл с API-токеном Cloudflare
mkdir -p /etc/letsencrypt/cloudflare
cat > /etc/letsencrypt/cloudflare/credentials.ini << 'EOF'
dns_cloudflare_api_token = ВАШ_CLOUDFLARE_API_TOKEN
EOF
chmod 600 /etc/letsencrypt/cloudflare/credentials.ini
# Получить Wildcard сертификат
certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflare/credentials.ini -d example.com -d "*.example.com" --preferred-challenges dns-01
Настройка автопролонгации
systemctl status certbot.timer
systemctl list-timers | grep certbot
# Тест пролонгации (без реального обновления)
certbot renew --dry-run
# Принудительное обновление
certbot renew --force-renewal
# Просмотр всех сертификатов
certbot certificates
acme.sh как альтернатива Certbot
curl https://get.acme.sh | sh -s email=admin@example.com
export CF_Token="ВАШ_CLOUDFLARE_API_TOKEN"
acme.sh --issue --dns dns_cf -d example.com -d "*.example.com"
acme.sh --install-cert -d example.com --key-file /etc/ssl/example.com.key --fullchain-file /etc/ssl/example.com.pem --reloadcmd "systemctl reload nginx"
Мониторинг истечения сертификатов
openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>&1 | grep "notAfter"
certbot certificates | grep -E "Expiry|Domains"
Уведомления об истечении: Let's Encrypt автоматически отправляет email за 30, 20 и 10 дней до истечения. Убедитесь, что адрес email при регистрации certbot актуален.
Ограничения Let's Encrypt: 50 сертификатов на домен в неделю, 5 дублирующих сертификатов в неделю, 100 поддоменов на сертификат. Для продакшн используйте staging-среду при тестировании:
--staging.