Сборка в GitLab CI перевыпускает сертификат на каждый прогон, потому что контейнер раннера каждый раз стартует с чистого /etc/letsencrypt. Preview-окружение поднимает свой поддомен на каждый pull request и сразу дёргает certbot, чтобы получить валидный HTTPS для ревьюера. Проходит неделя активной разработки — и certbot вдруг отвечает too many certificates already issued for exact set of domains, деплой встаёт, а разбираться приходится в пятницу вечером. Проблема не в сервере и не в конфиге nginx: вы упёрлись в защитный лимит центра сертификации, который…
Подробнее →