BASH
#certbot#letsencrypt#bitrixvm#ssl#webroot#centos

Certbot: выпуск сертификата Let's Encrypt через webroot в BitrixVM

Команда certbot certonly --webroot для BitrixVM на CentOS. Путь к сайту в /home/bitrix/ext_www/. По документации Certbot (webroot plugin).

Как использовать

  1. Узнай имя домена: ls /home/bitrix/ext_www/
  2. Подставь свой домен вместо example.com в -w и -d.
  3. После успеха сертификаты лежат в /etc/letsencrypt/live/ДОМЕН/

Чтобы выдать сайту на BitrixVM бесплатный SSL от Let’s Encrypt, нужен выпуск сертификата без остановки веб-сервера. Метод webroot позволяет Certbot положить HTTP-01 challenge в каталог документа сайта, а Nginx отдаёт его по URL /.well-known/acme-challenge/. Проблема возникает, когда путь к документу указан неверно или каталог для challenge недоступен по HTTP: выпуск падает с ошибкой проверки домена. Симптомы: «Failed to connect to … for TLS-SNI-01» или «Unable to find a virtual host». Ниже — установка certbot на CentOS/RHEL, команда выпуска для BitrixVM (путь /home/bitrix/ext_www/ДОМЕН/public_html), проверка доступности challenge и типичные сбои.

Решение

По Certbot User Guide — webroot плагин webroot записывает challenge в указанную папку. В BitrixVM документ сайта лежит в /home/bitrix/ext_www/ДОМЕН/public_html. Этот путь передаётся в -w.

Установка certbot (CentOS/RHEL)

yum install certbot -y
which certbot

Выпуск сертификата для одного домена с www

Замените example.com на свой домен. Флаг --non-interactive обязателен для скриптов и cron; для первого запуска можно опустить и ввести email по запросу.

certbot certonly \
  --webroot \
  -w /home/bitrix/ext_www/example.com/public_html \
  -d example.com \
  -d www.example.com \
  --email admin@example.com \
  --agree-tos \
  --non-interactive

При успехе в выводе будет строка вида «Successfully received certificate». Сертификаты появятся в каталоге:

ls -la /etc/letsencrypt/live/example.com/
# fullchain.pem — цепочка сертификатов
# privkey.pem   — закрытый ключ

Проверка

  1. Доступность каталога для ACME challenge — если выпуск падает с ошибкой проверки домена, убедитесь, что по HTTP отдаётся путь /.well-known/acme-challenge/:
mkdir -p /home/bitrix/ext_www/example.com/public_html/.well-known/acme-challenge
echo test > /home/bitrix/ext_www/example.com/public_html/.well-known/acme-challenge/test.txt
chown -R bitrix:bitrix /home/bitrix/ext_www/example.com/public_html/.well-known

curl -s http://example.com/.well-known/acme-challenge/test.txt
# Должен вернуться текст: test

Если ответ пустой или 404 — проверьте путь -w и конфигурацию nginx для этого сайта (location для /.well-known/).

  1. Проверка наличия сертификата после успешного выпуска:
sudo certbot certificates

В списке должен быть домен example.com с путями к fullchain.pem и privkey.pem. Дополнительно можно проверить срок действия: Проверка дат ACME-сертификата.

  1. Диагностика: какой путь к сайту в BitrixVM:
ls -la /home/bitrix/ext_www/

Имя каталога обычно совпадает с доменом сайта. В -w указывайте полный путь до public_html.

Типичные ошибки

  • Ошибка «Failed to connect» или «Unable to find a virtual host» — путь в -w не совпадает с document root сайта в nginx. Проверьте конфиг виртуального хоста (директива root) и сравните с путём в -w. В BitrixVM это обычно /home/bitrix/ext_www/ДОМЕН/public_html.
  • 403 Forbidden при запросе к /.well-known/acme-challenge/ — nginx не отдаёт этот каталог или запрещает доступ. Добавьте location для /.well-known/acme-challenge/ с alias на нужную папку или убедитесь, что в общем root есть подкаталог .well-known и права доступа (chown bitrix:bitrix).
  • Сертификат выпущен, но сайт не переведён на HTTPS — после выпуска нужно настроить nginx на использование сертификатов и при необходимости редирект с HTTP. См. Nginx и SSL Let’s Encrypt для BitrixVM.

Где применять

  • BitrixVM (prod/dev): CentOS/RHEL, стандартная структура /home/bitrix/ext_www/. Подходит для первого выпуска и для обновления по cron с deploy hook.
  • Не BitrixVM: замените -w на реальный document root вашего сайта.

Связанные сниппеты: Certbot: обновление по cron и deploy hook, Проверка дат ACME-сертификата, Nginx и SSL Let’s Encrypt для BitrixVM.

Источники: Certbot — Using the webroot plugin, Let’s Encrypt — HTTP-01 challenge.