Решение ошибок ACME при выпуске SSL-сертификата
При включении HTTPS-режима для виртуального хоста панель BeAdmin запрашивает SSL-сертификат у Let's Encrypt и добавляет его в конфигурацию Nginx. Запрос идёт по протоколу ACME — публичному стандарту автоматического выпуска сертификатов.
Чтобы выпустить сертификат, Let's Encrypt должен убедиться, что вы действительно владеете доменом. Для этого Let's Encrypt отправляет проверочный запрос на домен с публичной стороны — если DNS, Nginx или сетевые порты настроены некорректно, проверка не проходит, и панель сообщает об ошибке.
Включение HTTPS
HTTPS включается переключателем «Подключение по HTTPS (порт 443)» при создании или редактировании виртуального хоста — панель запрашивает сертификат сразу же. Подробнее о форме виртуального хоста — в статье Nginx. Работа с виртуальными хостами, про устройство выпуска и ручной перевыпуск — в Выпуск SSL-сертификата. Эта статья — справочник по конкретным сообщениям об ошибках.
Если выпустить сертификат не удалось — панель покажет уведомление об ошибке. В нём под заголовком «Ошибка ACME:» приведён исходный текст ошибки от центра сертификации — подробности смотрите там, а не в логах сервера. Конкретные сообщения и что с ними делать — ниже.
Сообщения об ошибках
Ниже разобраны сообщения, которые панель показывает при ошибке выпуска: что произошло на стороне Let's Encrypt и что нужно поправить. Если вашего сообщения здесь нет — смотрите «Прочая ошибка Let's Encrypt».
DNS-записей для домена нет
Не удалось выпустить SSL-сертификат: DNS-записи для домена не найдены.
Let's Encrypt не нашёл вообще никаких DNS-записей по доменному имени — домен либо не делегирован на DNS-серверы провайдера, либо записи ещё не добавлены.
Что делать:
- Проверьте, что домен делегирован на DNS-серверы вашего регистратора или провайдера.
- Создайте A- или AAAA-запись, указывающую на IP-адрес сервера. Как настраивать DNS — см. Настройка DNS-записей для почтового сервера (раздел про A-запись применим к любому сайту).
- Подождите, пока изменения распространятся (обычно несколько минут, иногда до часа), и повторите выпуск сертификата.
Нет A или AAAA-записи
Не удалось выпустить SSL-сертификат: DNS-записи типов A или AAAA для домена не найдены.
Какие-то DNS-записи у домена есть (например, MX или TXT), но нет A (IPv4) или AAAA (IPv6). Без них Let's Encrypt не знает, по какому IP обращаться к серверу.
Что делать:
- Добавьте A-запись с IP-адресом вашего сервера или AAAA-запись, если используете IPv6.
- Дождитесь распространения и повторите выпуск.
DNS указывает на другой сервер
Не удалось выпустить SSL-сертификат: DNS-записи указывают на другой сервер.
A или AAAA-запись существует, но ведёт не на тот сервер, где работает BeAdmin. Запрос Let's Encrypt пришёл на чужой IP, и проверка владения провалилась.
Что делать:
- Сравните IP-адрес сервера в панели с A-записью домена.
- Поправьте A-запись у регистратора или DNS-провайдера. Если запись правильная, но добавлена недавно — подождите распространения.
- Если используете прокси (например, Cloudflare), на время выпуска отключите проксирование — в Cloudflare переключите облако с оранжевого на серое.
Это же сообщение бывает, если сайт перехватывает служебный адрес /.well-known/acme-challenge/ — например, через WordPress, CMS-роутер или общий location /. В этом случае A-запись может быть верной.
Если A-запись указывает на ваш сервер:
- Убедитесь, что виртуальный хост создан в
BeAdminчерез стандартную форму — панель добавляет нужный location для ACME автоматически. - Если в конфиг Nginx добавляли свои правила вручную — проверьте, что
/.well-known/acme-challenge/не блокируется ими. - Отключите плагины безопасности CMS, перехватывающие неизвестные URL.
Бесконечные редиректы при проверке
Не удалось выпустить SSL-сертификат: бесконечные редиректы при попытке подтвердить владение доменом.
Сервер отвечает Let's Encrypt серией редиректов, которая зацикливается. Чаще всего это случается, когда Nginx перенаправляет HTTP на HTTPS, а HTTPS-сертификата ещё нет — Let's Encrypt не может пройти проверку через http://.
Что делать:
- Временно уберите принудительный редирект с HTTP на HTTPS на стороне сайта или CMS.
- Дождитесь успешного выпуска сертификата, после чего верните редирект.
- Если редирект делает CDN или внешний прокси — отключите его на время выпуска.
Превышен лимит запросов Let's Encrypt
Слишком много запросов на выпуск SSL-сертификата.
Слишком много запросов на выпуск SSL-сертификата, следующая попытка доступна через {diff} ({human}).
Let's Encrypt ограничивает число запросов с одного IP-адреса, а не с домена, поэтому лимит могут исчерпать и другие серверы с тем же внешним адресом.
Если лимит исчерпан или у Let's Encrypt сбой, панель автоматически повторяет выпуск через другой центр сертификации. Ошибку вы увидите, если выпуск не удался и там.
Что делать:
- Дождитесь снятия лимита. Если в сообщении указано конкретное время — ориентируйтесь на него; иначе ждите до 3 часов.
- Перед повторной попыткой убедитесь, что DNS, порт 80 и редиректы настроены корректно, — иначе выпуск снова не удастся.
- Если сайт срочно нужен, на время ожидания переведите его в HTTP-режим.
Прочая ошибка Let's Encrypt
Не удалось выпустить SSL-сертификат из-за ошибки Let's Encrypt.
Общее сообщение не объясняет причину — её показывает исходный текст ошибки в уведомлении под заголовком «Ошибка ACME:». По нему и определяйте, что исправить. Типичные случаи:
- Порт 80 закрыт или занят — в тексте есть
Timeout during connectилиConnection refused. Let's Encrypt проверяет домен запросом на порт 80 вашего сервера: если порт закрыт фаерволом, занят другим процессом или перенаправлен, проверка не проходит. Откройте порт 80 в фаерволе сервера и у хостинг-провайдера и освободите его, если его занял другой сервис, — порт должен слушать Nginx. - Тайм-аут проверки — в тексте есть
Timeout after connect. Сервер не ответил Let's Encrypt вовремя — например, из-за перегрузки или проблем с сетью. Подождите несколько минут и повторите выпуск; проверьте, отвечает ли сервер по HTTP с другого устройства, — например, командойcurl http://yourdomain.com/.well-known/acme-challenge/test. Если проблема не уходит — обратитесь к хостинг-провайдеру. - Запрет в CAA-записи — в тексте есть
CAA record for yourdomain.com prevents issuance. CAA-запись домена не разрешает выпуск через Let's Encrypt. Проверьте записи — например, командойdig +short CAA yourdomain.com— и добавьте запись сletsencrypt.orgлибо удалите ограничивающие, если они не нужны. Дождитесь распространения и повторите выпуск.
Если в тексте ошибки что-то другое:
- Сверьте сообщение с актуальным статусом Let's Encrypt — иногда сбой связан с недоступностью центра сертификации, а не с вашим сервером.
- Если разобраться не удаётся — напишите в поддержку и приложите текст из уведомления.