Перейти к содержанию
Обсудить задачу →
Статьи и инструкции

Let’s Encrypt в BitrixVM: установка HTTPS, проверка сертификата и автоматическое продление

Настройка Let’s Encrypt в BitrixVM: DNS, HTTP-01, штатное меню и проверка TLS. Диагностика продления, редиректов и сертификата без конфликтующих клиентов.
Концептуальная иллюстрация: Let’s Encrypt в BitrixVM: установка HTTPS, проверка сертификата и автоматическое продление

Сертификат нужен не только для значка в браузере. От его корректной установки зависят вход в административную панель, платёжные интеграции, вебхуки и доступность сайта для поисковых систем. А сертификат, который однажды выпустился, но не продлевается, создаёт отложенный инцидент.

Ниже — порядок для BitrixEnv/BitrixVM 9.x с управляемым меню. Отдельно разобраны обратный прокси и ошибки ACME. Если HTTPS завершается на другом сервере, сертификат устанавливают и продлевают именно на этом узле; выпуск на внутренней BitrixVM сам по себе не изменит сертификат, который получает посетитель.

1. Определите, где заканчивается TLS

Запишите публичное имя, адреса A/AAAA, внешний узел на порту 443 и внутренний веб-сервер. Частые варианты: прямой доступ к BitrixVM, прокси перед VM, балансировщик или CDN. В двух последних случаях сертификаты и настройки могут существовать на нескольких уровнях.

host_name='www.example.net'
dig +short A "$host_name"
dig +short AAAA "$host_name"
curl -I "https://$host_name/"

Имя учебное: команды имеют смысл после замены на реальный домен. curl без -k проверяет доверие сертификату; обход этой проверки скроет часть проблемы. Ответ приложения, например 403 для HEAD, не равен ошибке TLS — анализируйте оба уровня отдельно.

Подключение к IP без имени недостаточно: виртуальные хосты используют SNI, и сервер может вернуть сертификат соседнего сайта. При контролируемой проверке определённого узла применяют curl --resolve, сохраняя настоящее имя в URL.

2. Подготовьте DNS и доступность HTTP-01

Для HTTP-01 центр сертификации проверяет специальный ресурс домена через порт 80. Он не проверяет сайт на произвольно выбранном 8080. Для wildcard используется другой механизм — DNS-01 с подтверждением записи DNS. Условия объясняет Let’s Encrypt.

Проверьте все имена будущего сертификата: если example.net работает, а www.example.net указывает на старый хост, включение обоих имён может сорвать выпуск. NAT, WAF, авторизация и редиректы не должны превращать challenge в страницу входа или вести к другому недоступному серверу.

AAAA должна вести на реально доступный IPv6-узел. Не отключайте IPv6 на всей инфраструктуре как универсальное лечение: исправьте адрес или путь доступа. Центр сертификации описывает особенности выбора IPv6 в отдельной инструкции.

Для развёртывания за прокси заранее решите, какой ACME-клиент владеет challenge и ключами. Один домен с несколькими несогласованными автоматическими клиентами — источник конфликтов и лишних перевыпусков.

Этапы установки HTTPS: точка TLS, challenge, выпуск, проверка и продление
Порядок проверки и настройки. Команды, ограничения и диагностика приведены в статье.

3. Сохраните конфигурацию и предыдущий рабочий сертификат

Планируйте изменение с доступом к консоли и возможностью возврата. Зафиксируйте текущие пути сертификата и ключа, конфигурацию виртуального хоста, настройки прокси и действующий механизм продления. Полный вывод конфигурации может содержать чувствительные параметры — храните его вне публичной директории сайта.

sudo nginx -t
sudo nginx -T 2>&1 | less
sudo ss -ltnp

nginx -T показывает итоговую конфигурацию с include; это полезнее поиска в одном предполагаемом файле. Команда не меняет настройки. Сохраните резервную копию только после определения действующих файлов, с ограничением доступа к приватному ключу. Обладатель этого ключа получает важный секрет — копировать его в общую папку документов нельзя.

В BitrixEnv часть конфигурации управляется автоматизацией. Ручная правка генерируемого файла может быть перезаписана следующей задачей меню. До изменения выясните, какой механизм считается владельцем настройки.

4. Выпустите сертификат через меню BitrixVM 9

Подключитесь к VM по доверенному административному каналу и запустите меню окружения, обычно /root/menu.sh. Для ветки 9.x в руководстве BitrixVM приведён путь:

  • 9. Manage pool web servers → 2. Configure certificates.
  • 1. Configure "Let's encrypt" certificate.
  • В поле имени сайта выберите нужный сайт из списка окружения.
  • В списке доменов укажите только подготовленные реальные имена, включая www при необходимости.
  • Введите действующий контролируемый адрес уведомлений и подтвердите задачу.

Нумерация старых BitrixEnv отличается: не ищите пункт 9 в системе, где управление сертификатами размещено иначе. Перед подтверждением прочитайте список выбранных сайтов и имён. Нельзя подставлять example.net из статьи в рабочую задачу.

Дождитесь результата фоновой операции. В меню 9.x состояние задач доступно через 10. Background pool tasks; журналы задач находятся в /opt/webdir/temp. Запуск мастера ещё не означает успешную установку.

5. Проверьте сертификат с внешней стороны

После установки проверьте браузер и TLS-соединение снаружи, а не только наличие файла внутри VM:

host_name='www.example.net'
openssl s_client -connect "$host_name:443" -servername "$host_name" -verify_hostname "$host_name" -verify_return_error </dev/null
openssl s_client -connect "$host_name:443" -servername "$host_name" </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName

Первый вызов проверяет цепочку и соответствие имени при доверенных CA в используемой системе. Второй показывает сертификат, который реально выдан соединению: issuer, сроки и SAN. Краткий вывод x509 сам по себе не доказывает проверку всей цепочки, поэтому нужны оба этапа.

Проверьте все имена и, если DNS указывает на несколько узлов, каждый адрес отдельно с корректным SNI. Ошибка только на одном IP часто означает неприменённую конфигурацию балансировщика или устаревший сертификат резервного узла.

6. Как включить перенаправление на HTTPS без цикла

Перенаправление включают после успешной внешней проверки. В BitrixEnv используйте предусмотренное меню изменения HTTPS-настроек сайта, вместо произвольного фрагмента .htaccess без проверки конфигурации сайта. У прокси фронтальное HTTPS и внутренний HTTP — нормальная архитектура, но приложение должно корректно понимать внешний протокол.

curl -I http://example.net/
curl -I https://example.net/
curl -IL --max-redirs 5 http://example.net/

Ожидается ограниченная понятная цепочка к каноническому HTTPS-адресу. Серия одинаковых переходов указывает на цикл: один уровень требует HTTPS, а другой не распознаёт уже защищённый внешний запрос. Заголовки вроде X-Forwarded-Proto доверяют только своим прокси; принимать их от любого клиента опасно.

Проверьте вход, формы, загрузку файлов, смешанный контент, API и вебхуки. Успешная главная страница не доказывает работу платёжного callback. Для сайта с длительно действующими интеграциями изменение URL предварительно согласуют с владельцами этих интеграций.

7. Как проверить автоматическое продление

В штатных установках BitrixEnv используется собственный ACME-клиент. Прежде чем добавлять certbot, найдите действующее задание и механизм: два клиента не должны конкурировать за одни имена и конфигурацию.

sudo crontab -l
sudo systemctl list-timers --all
sudo ls -l /home/bitrix/dehydrated/dehydrated
sudo tail -n 80 /home/bitrix/dehydrated_update.log

Пути относятся к описанному BitrixEnv-сценарию и могут отсутствовать в другой установке. Найдите фактический cron, контекст пользователя и используемые параметры. Важен не только запуск клиента, но и применение нового сертификата веб-сервером.

При штатной конфигурации и согласованном ручном запуске документация приводит /home/bitrix/dehydrated/dehydrated -c. Это операция продления, а не команда чтения: выполнять её следует в том же корректном контексте и с той конфигурацией, которые использует автоматизация. Не запускайте массовую перерегистрацию доменов ради диагностики.

Срок действия берите из реального сертификата. Планируйте мониторинг по оставшемуся времени и результату продления, а не по обещанию «сертификат всегда выдаётся на одно и то же число дней».

8. Почему сертификат не выпускается или не продлевается

Ошибки удобно разделить на DNS, доступность challenge, полномочия записи файлов, ограничения CA и применение результата. При DNS-проблеме проверьте авторитетный ответ и внешние резолверы. При challenge — публичный маршрут до нужного файла, IPv4/IPv6 и поведение WAF. При ошибке записи — владельца конкретного каталога, место, inode и SELinux.

Не лечите ошибку повторным нажатием мастера каждые несколько секунд. У Let’s Encrypt есть ограничения выпуска; следует исправить причину и учитывать ответ сервиса. Для отладки собственного ACME-сценария используют предусмотренный клиентом staging, не выдавая тестовый сертификат за доверенный рабочий.

Если файл обновился, но браузер показывает прежний issuer или срок, проверьте точку завершения TLS, reload, балансировщик и кеш внешнего уровня. Ошибка может быть вне BitrixVM.

9. Что проверить для SEO и когда включать HSTS

HTTPS не заменяет SEO-настройки. Проверьте канонический адрес, внутренние ссылки, sitemap, robots, редиректы между www и без www, а также Open Graph. В списке страниц не должно появиться две независимо индексируемые версии одного материала из-за несогласованной смены протокола.

HSTS сообщает браузеру, что сайт следует открывать по HTTPS. Его включают после проверки стабильного сертификата и продления. includeSubDomains затрагивает поддомены, а preload требует отдельного обоснования; случайное включение способно заблокировать ещё не подготовленные сервисы. Отключение заголовка не мгновенно отменяет политику, которую браузер уже сохранил.

Проверьте внешние проверки срока сертификата и назначьте ответственного за уведомления. Одна запись «TLS включён» в документации недостаточна без контроля работоспособности.

10. Как выполнить возврат и принять результат

При неудаче возвращают предыдущую проверенную конфигурацию и сертификат, проверяют nginx -t, затем применяют конфигурацию штатным способом и повторяют внешний тест. Самоподписанный сертификат по умолчанию из меню — средство технического восстановления, но не полноценная замена доверенному сертификату публичного сайта.

Изменение принято, когда все согласованные имена проходят проверку цепочки и SAN, нет циклов редиректа, основные операции сайта работают, автоматическое продление обнаружено и контролируется, а секретный ключ доступен только нужным процессам. Зафиксируйте место завершения TLS, пути файлов, владельца автоматизации и дату следующего контрольного теста.

Ошибки владельцев каталогов разбираются отдельно в статье о правах BitrixVM. Для диагностики DNS используйте прикладной справочник nslookup.

Нужно сопровождение сертификатов и сайта на Битрикс?

Важно контролировать выпуск и продление сертификата, цепочку доверия, настройки веб-сервера и доступность сайта после изменений.