Что было. При выпуске сертификата для очередного поддомена отказ: «Too many certificates already issued for: example.xyz». За предыдущие недели на разные поддомены этого домена было выпущено около десяти сертификатов, в том числе шесть на одно и то же имя в ходе тестов.
Как считаются лимиты. Основной лимит считается на регистрируемый домен (второй уровень, example.xyz), а не на каждое имя: все поддомены складываются. Второй лимит на дубликаты: одинаковый набор имён можно выпустить лишь несколько раз в неделю. Третий на неудачные проверки на имя в час. Точные числа менялись и растут со временем, но принцип прежний: лимиты про количество выпусков, а не про количество имён в сертификате. Продления, инициированные по сигналу самого центра (ARI) в новых клиентах, из лимитов выведены.
Что предложили.
- Тестировать против тестовой среды (
--test-cert/--staging), где лимиты на порядки выше; боевые сертификаты выпускать один раз, когда всё отлажено. - Один сертификат со списком имён (SAN) вместо десяти отдельных на поддомены, либо wildcard через DNS-проверку.
- Продлевать только у истечения (
certbot renewделает это сам), не перевыпускать «на всякий случай».
Типичные причины, по которым лимит сгорает незаметно.
certbot certonly(неrenew) в cron или в скрипте деплоя: каждый запуск это новый выпуск.- Контейнер без тома для
/etc/letsencrypt: после каждого перезапуска клиент думает, что сертификата нет, и выпускает заново. Проверка: в/etc/letsencrypt/archive/<домен>/много файловcert*.pemза последние дни. - Несколько серверов или инструментов (панель, обратный прокси, ручной certbot) независимо выпускают сертификаты на один домен.
- Отладка проверки на боевой среде вместо тестовой: серия неудач блокирует имя на час.
Как выйти из блокировки. Никак, кроме ожидания: окно скользящее, обычно достаточно нескольких часов. На это время можно взять сертификат у другого центра с поддержкой ACME (их несколько) или временно обслуживать сайт старым сертификатом, если он ещё действителен.
Проверка истории выпусков. Публичные журналы прозрачности сертификатов показывают всё, что выпускалось на домен; по ним видно, откуда взялись «лишние» выпуски, и сколько ждать.
Лимиты описаны в документации Let’s Encrypt.