Let's Encrypt: превышен лимит запросов — причины и решение
Certbot внезапно отказывает: too many certificates already issued или too many failed authorizations. Когда в Let's Encrypt превышен лимит запросов, дело не в вашем сервере — вы упёрлись в защитные ограничения центра сертификации. Они существуют, чтобы никто не завалил бесплатный сервис миллионами запросов, и распространяются на всех. Разберём, какие бывают лимиты, за что именно вы их получили и как выпустить сертификат, не дожидаясь целую неделю.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Какие лимиты есть у Let's Encrypt
Ограничения бывают нескольких видов, и важно понять, в какой именно вы упёрлись — от этого зависит и время ожидания, и обходной путь. Лимит на сертификаты для одного набора доменов: не более пяти одинаковых сертификатов в неделю (Duplicate Certificate). Лимит на регистрируемый домен: не более пятидесяти сертификатов на зарегистрированный домен за неделю. Лимит на неудачные проверки: пять неудачных валидаций на аккаунт, домен и тип challenge в час. Лимит на новые заказы и на аккаунты с одного IP.
На практике вы почти всегда встречаете одно из двух. Первое — «too many certificates already issued for exact set of domains»: вы много раз перевыпустили сертификат на один и тот же список доменов, отлаживая настройку. Второе — «too many failed authorizations»: валидация не проходила, вы запускали certbot снова и снова, и накопили пять неудач за час. Точная формулировка в логе сразу говорит, какой это лимит и на сколько вы застряли.
Читаем, какой именно лимит сработал
Не гадайте — точный текст ошибки определяет стратегию. Загляните в лог certbot и в вывод команды.
tail -30 /var/log/letsencrypt/letsencrypt.log
certbot certonly --webroot -w /var/www/html -d ваш-домен -v 2>&1 | grep -i "rate\|too many\|limit"
Ключевые формулировки: too many certificates already issued for: домен — это недельный лимит на дубликаты, ждать до сброса; too many failed authorizations recently — часовой лимит на ошибки, сбрасывается быстро; too many registrations for this IP — лимит на создание аккаунтов. Разница принципиальна: часовой лимит переждать легко, недельный — больно. Поэтому первое правило: как только увидели ошибку rate limit, остановитесь и перестаньте запускать certbot, иначе усугубите ситуацию новыми неудачными попытками поверх старых.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS с чистым IPГлавная профилактика: staging-окружение
Почти все, кто ловит лимит, делают одну и ту же ошибку — отлаживают выпуск на боевом (production) сервере ACME. Каждая неудачная попытка тратит боевой лимит. А ведь у Let's Encrypt есть отдельное тестовое окружение (staging) с почти безграничными лимитами и той же логикой работы.
certbot certonly --staging --webroot -w /var/www/html -d ваш-домен
Отлаживайте всё — порт 80, редиректы, webroot, права, DNS — именно на staging. Сертификат оттуда браузеры не признают (он подписан тестовым центром), но вам сейчас важна не валидность, а прохождение процесса. Когда --staging отработает без ошибок, вы точно знаете, что боевой выпуск пройдёт с первого раза — и потратит лимит один-единственный раз. Это главный совет всей статьи: никогда не отлаживайте на production. Между staging и боевым переключайтесь удалением тестового сертификата и запуском без флага --staging.
Часовой лимит: переждать неудачные проверки
Если вы упёрлись в «too many failed authorizations», хорошая новость — он сбрасывается в течение часа, не недели. Плохая — пока он действует, боевые попытки бессмысленны, каждая только продлевает мучения. Правильная тактика: остановиться, устранить настоящую причину неудачной валидации и вернуться через час уже с гарантированно рабочей конфигурацией.
За этот час сделайте главное — почините то, из-за чего валидация падала. Проверьте на staging, что challenge реально отдаётся:
curl http://ваш-домен/.well-known/acme-challenge/test
certbot renew --staging --dry-run
Не сидите просто в ожидании — используйте паузу, чтобы к моменту сброса лимита прийти с проверенной на staging настройкой. Тогда единственная боевая попытка после разблокировки сработает. Запускать боевой certbot «на всякий случай, вдруг уже отпустило» — верный способ обнулить таймер и ждать ещё час.
Недельный лимит: варианты обхода
С лимитом на дубликаты сертификатов сложнее — ждать до недели. Но есть законные способы не сидеть без сертификата всё это время. Первый: если вам нужен сертификат на слегка другой набор доменов, добавьте или уберите один поддомен — это уже «другой» набор с точки зрения лимита дубликатов, и он выпустится.
# было -d домен; станет другой набор — лимит дубликатов не сработает
certbot certonly --webroot -w /var/www/html -d ваш-домен -d www.ваш-домен
Второй способ — использовать уже выпущенный сертификат, если он есть. Часто в панике люди перевыпускают то, что уже успешно получили. Проверьте, нет ли рабочего сертификата на диске:
certbot certificates
ls -l /etc/letsencrypt/live/
Третий, стратегический вариант — сменить центр сертификации на время. ZeroSSL и другие ACME-совместимые CA дают бесплатные сертификаты по тому же протоколу, и их лимиты считаются отдельно от Let's Encrypt. Certbot и acme.sh умеют работать с несколькими CA. Это законный обход именно лимита Let's Encrypt, а не нарушение.
Правильная стратегия выпуска
Чтобы больше не упираться в лимиты, поменяйте сам подход. Не перевыпускайте сертификат при каждом чихе: одного сертификата хватает на 90 дней, и продлевать его нужно автоматически, а не выпускать заново вручную. Объединяйте домены: один сертификат с несколькими -d или wildcard-сертификат покрывает много поддоменов и тратит один слот вместо десятка.
# один wildcard вместо множества отдельных выпусков
certbot certonly --manual --preferred-challenges dns -d '*.ваш-домен' -d ваш-домен
Настройте нормальное автопродление через certbot.timer и deploy-hook — тогда сертификаты живут годами без единого ручного выпуска, и лимит вы попросту не видите. Если разворачиваете много одинаковых серверов, выпускайте сертификат один раз и копируйте, а не выпускайте на каждом заново. И держите отладку на staging железным правилом. При таком подходе лимиты Let's Encrypt для вас перестают существовать — их щедро хватает на любую разумную эксплуатацию.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS с чистым IPОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Сколько ждать сброса лимита?
Зависит от типа. Часовой лимит на неудачные проверки (failed authorizations) сбрасывается в течение часа. Недельный лимит на дубликаты сертификатов — до 7 дней с момента самого раннего выпуска в окне. Точный тип виден в тексте ошибки.
Как выпускать сертификат, не тратя лимит на отладку?
Всегда используйте --staging. Тестовое окружение имеет почти безграничные лимиты и ту же логику. Отладив выпуск там, вы потратите боевой лимит ровно один раз при финальном запуске без флага.
Можно ли получить сертификат прямо сейчас, упершись в недельный лимит?
Да: измените набор доменов (добавьте/уберите поддомен) — это другой набор для лимита дубликатов. Либо временно возьмите сертификат у другого ACME-центра, например ZeroSSL, — его лимиты считаются отдельно.
Почему я вообще упёрся в лимит?
Почти всегда — от многократного перевыпуска при отладке на боевом окружении или от повторных запусков после неудачной валидации. Лечится переносом отладки на staging и настройкой автопродления вместо ручных выпусков.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.