Certbot: Could not automatically find a matching server block — сертификат не установлен
Сертификат уже получен и лежит на сервере, но Certbot не нашёл в настройках nginx сайт с этим именем. Пропишите имя в строке server_name и установите сертификат — выпускать его заново не нужно.
Содержание 9
Что сделать прямо сейчас
- Посмотрите, какие имена указаны в настройках nginx, — шаг 1.
- Добавьте свой домен в строку server_name — шаг 2.
- Установите сертификат, который уже получен, — шаг 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 certificatesSaving 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.
Как проверить
Откройте 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:, а некоторые строки могут немного отличаться.
Источники
- Исходный код Certbot 5.8.0: configurator.py — текст Could not automatically find a matching server block и Successfully deployed certificate.
- Исходный код Certbot 5.8.0: main.py — текст Could not install certificate и раздел NEXT STEPS.
- Исходный код Certbot 5.8.0: cert_manager.py — вывод certbot certificates.
- Let’s Encrypt: лимиты на выдачу сертификатов — страница обновлена 5 августа 2026 года.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026