Ошибки

Certbot: Could not automatically find a matching server block — сертификат не установлен

Сертификат уже получен и лежит на сервере, но Certbot не нашёл в настройках nginx сайт с этим именем. Пропишите имя в строке server_name и установите сертификат — выпускать его заново не нужно.

Обновлено 10.10.2026≈ 7 мин чтения
Содержание 9

Что сделать прямо сейчас

  1. Посмотрите, какие имена указаны в настройках nginx, — шаг 1.
  2. Добавьте свой домен в строку server_name — шаг 2.
  3. Установите сертификат, который уже получен, — шаг 3.

Все команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

Что значит это сообщение

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for example.com and www.example.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/example.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/example.com/privkey.pem
This certificate expires on <дата>.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Could not install certificate

NEXT STEPS:
- The certificate was saved, but could not be installed (installer: nginx). After fixing the error shown below, try installing it again by running:
  certbot install --cert-name example.com

Could not automatically find a matching server block for example.com. Set the `server_name` directive to use the Nginx installer.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.

Здесь две части. Первая — Successfully received certificate.: проверка домена прошла, сертификат выдан и сохранён в папке /etc/letsencrypt/live/example.com/. Вторая — Could not install certificate: прописать его в настройки nginx не получилось.

Причина — в последней строке перед советом Certbot. Чтобы установить сертификат, Certbot ищет блок server, где в строке server_name стоит имя из команды. Если такого блока нет, он не знает, какой сайт настраивать, и останавливается. Это бывает, когда в server_name записано только example.com без www, стоит server_name _; или файл настроек сайта ещё не создан.

Дата в строке This certificate expires on у вас будет своя. Вместо example.com в примерах подставьте свой домен.

Шаг 1. Посмотрите, какие имена знает nginx

grep -n server_name /etc/nginx/sites-enabled/*

Команда покажет все строки server_name в настройках включённых сайтов: имя файла, номер строки и саму строку. Например:

/etc/nginx/sites-enabled/example.com:4:    server_name example.com;
  • Здесь есть example.com, но нет www.example.com — значит, www нужно добавить.
  • Строка server_name _; относится к сайту по умолчанию — Certbot её не использует.
  • Если строки с вашим доменом нет совсем, сайт в nginx ещё не описан. Опишите его по Как разместить сайт на VPS: шаг 4, а потом переходите к шагу 3.

Шаг 2. Добавьте имена в server_name

Настройки nginx меняют в файле настроек сайта. Он лежит в папке /etc/nginx/sites-available/ — это тот файл, который вы создавали по инструкции Как разместить сайт на VPS: nginx с нуля. Откройте его на сервере, подставив вместо example.com имя своего файла:

sudo nano /etc/nginx/sites-available/example.com

Найдите строку server_name и перечислите в ней через пробел все имена, которые вы писали в команде Certbot после -d:

    server_name example.com www.example.com;

Точка с запятой в конце обязательна. Если одно и то же имя окажется в двух блоках server, nginx предупредит об этом — разбор на странице conflicting server name.

Сохраните файл — Ctrl+O, Enter, затем Ctrl+X — и проверьте настройки:

sudo nginx -t

В ответе должны быть слова syntax is ok и test is successful. Если вместо них сообщение об ошибке, в нём указаны файл и номер строки: исправьте строку и проверьте снова. Когда проверка прошла, примените настройки:

sudo systemctl reload nginx

Если команда ничего не ответила, настройки применены.

Шаг 3. Установите уже полученный сертификат

Сертификат уже лежит на сервере, поэтому выпускать его заново не нужно. Установите его — эту команду Certbot сам подсказал в разделе NEXT STEPS, мы только добавили sudo и ключ --nginx:

sudo certbot install --cert-name example.com --nginx

Вместо example.com после --cert-name подставьте имя сертификата из этой строки сообщения. Если сообщение уже не видно, имена всех сертификатов на сервере покажет команда:

sudo certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: example.com
    Serial Number: …
    Key Type: …
    Identifiers: example.com www.example.com
    Expiry Date: …
    Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Имя сертификата стоит в строке Certificate Name, а имена сайтов, на которые он выдан, — в строке Identifiers. В Certbot из пакетов Ubuntu 24.04 эта строка называется Domains. Многоточиями заменены данные, которые у вас будут свои.

Когда установка пройдёт, Certbot напишет для каждого имени строку вида Successfully deployed certificate for example.com to /etc/nginx/sites-enabled/example.com.

Не запускайте команду выпуска с теми же именами раз за разом: у Let’s Encrypt лимит — не больше 5 сертификатов на один и тот же набор имён за 7 дней. Подробнее — на странице too many certificates.

Как проверить

Откройте https://example.com в браузере — сайт должен открыться без предупреждения. На сервере в файле настроек сайта появятся строки ssl_certificate и ssl_certificate_key с пометкой # managed by Certbot.

Похожие ошибки

СообщениеЧем отличается
Some challenges have failedПроверка домена не прошла — сертификат не выдан
conflicting server nameПредупреждение nginx: одно имя записано в двух блоках server
no "ssl_certificate" is definedВ настройках есть listen 443 ssl, но не указан сертификат

Тексты сообщений сверены с исходным кодом Certbot 5.8.0 — эта версия ставится через snap, как в инструкции Бесплатный SSL-сертификат, — и сервера Let’s Encrypt. В Certbot 2.9.0 из пакетов Ubuntu 24.04 вместо Identifier: стоит Domain:, а некоторые строки могут немного отличаться.

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026