Помощь

Auto SSL на BitrixVM

BitrixVM — это CentOS или AlmaLinux с nginx перед Apache и собственным меню настройки. Штатный пункт меню выдаёт только сертификаты Let's Encrypt (через dehydrated), поэтому для Auto SSL сертификат Sectigo получает acme.sh, а подключаем его через меню BitrixVM «Configure own certificate» — так настройки не перетрутся при обновлении окружения.

Где взять ключи

  1. В личном кабинете 1host.kz/bill откройте услугу «Auto SSL (Sectigo ACME)» (оформить — на странице Auto SSL).
  2. Нажмите «Configure Now» («Настроить»), введите домены в «Single Domains» (www и без www — один домен), wildcard — в «Wildcard Domains».
  3. Через 5–30 секунд появятся ACME account ID, EAB MAC ID, EAB MAC key, Server URL.

В командах: Server URL — https://acme.sectigo.com/v2/DV, YOUR_EAB_KID — EAB MAC ID, YOUR_EAB_HMAC_KEY — EAB MAC key.

Особенности BitrixVM

  • Корень сайта по умолчанию — /home/bitrix/www; дополнительные сайты — /home/bitrix/ext_www/домен.
  • Сертификаты хранятся в /etc/nginx/certs/; меню BitrixVM принимает свои файлы в формате PEM.
  • Порт 80 должен быть открыт в firewalld: firewall-cmd --list-services должен показывать http https.
  • Если ранее включали Let's Encrypt из меню, его задание dehydrated продолжит работать и может перезаписать сертификат — после перехода на Sectigo уберите этот домен из него (см. раздел про ошибки).

Установка acme.sh и регистрация

acme.sh работает одинаково на CentOS 7 и AlmaLinux 9 и не требует пакетов, в отличие от certbot из EPEL. От root:

curl https://get.acme.sh | sh -s [email protected]
source ~/.bashrc
acme.sh --register-account --server https://acme.sectigo.com/v2/DV \
  --eab-kid YOUR_EAB_KID --eab-hmac-key YOUR_EAB_HMAC_KEY
acme.sh --set-default-ca --server https://acme.sectigo.com/v2/DV

Если предпочитаете certbot, установите его (dnf install epel-release certbot) и используйте команду из статьи Auto SSL через certbot с --webroot -w /home/bitrix/www.

Выпуск и подключение через меню BitrixVM

Выпустите сертификат через корень сайта (nginx BitrixVM отдаёт статические файлы из него напрямую, в том числе /.well-known/acme-challenge/):

acme.sh --issue -d example.kz -d www.example.kz -w /home/bitrix/www

Положите файлы в постоянные пути в /etc/nginx/certs/ и задайте перезагрузку nginx после продления:

mkdir -p /etc/nginx/certs/example.kz
acme.sh --install-cert -d example.kz \
  --key-file       /etc/nginx/certs/example.kz/privkey.pem \
  --fullchain-file /etc/nginx/certs/example.kz/fullchain.pem \
  --reloadcmd      "systemctl reload nginx"

Теперь подключите их в меню BitrixVM: запустите /root/menu.sh → «9. Manage pool web servers» → «2. Configure certificates» → «2. Configure own certificate». Укажите:

  • Sitename — имя сайта в BitrixVM (default для основного или имя дополнительного сайта);
  • Private Key path/etc/nginx/certs/example.kz/privkey.pem;
  • Certificate path/etc/nginx/certs/example.kz/fullchain.pem;
  • Certificate Chain path — можно оставить пустым, цепочка уже внутри fullchain.pem.

Меню перепишет конфиги nginx и перезапустит его. Пути, которые применились, отображаются в том же разделе меню.

УТОЧНИТЬ: копирует ли меню «Configure own certificate» файлы в свой каталог или ссылается на указанные пути — после настройки сравните пути в меню с указанными выше; если они отличаются, укажите в --install-cert именно те пути, что показывает меню (правка /etc/nginx/bx/conf/ssl.conf вручную не рекомендуется — файл принадлежит окружению BitrixVM).

Несколько сайтов на одной машине

Каждый дополнительный сайт — свой выпуск с его webroot (-w /home/bitrix/ext_www/shop.example.kz), свой каталог в /etc/nginx/certs/ и своё имя сайта в меню. Все домены должны быть в подписке Auto SSL (поддомены вроде shop.example.kz — отдельные домены).

Типовые ошибки

  • Проверка не проходит (timeout) — закрыт порт 80: firewall-cmd --permanent --add-service=http && firewall-cmd --reload; или домен не указывает на машину.
  • Сертификат сменился обратно на Let's Encrypt — работает штатное задание dehydrated из меню BitrixVM (по субботам в 2:00). Уберите домен из его конфигурации или переключите сайт на свой сертификат заново через меню; при сомнениях — в поддержку.
  • ЦС отклоняет заказ — домена нет в подписке; добавьте его в кабинете.
  • После обновления BitrixVM сайт отдаёт другой сертификат — повторите «Configure own certificate» с теми же путями.

Проверка и продление

echo | openssl s_client -connect example.kz:443 -servername example.kz 2>/dev/null \
  | openssl x509 -noout -issuer -dates
acme.sh --list
crontab -l | grep acme.sh

Издатель — Sectigo Limited, строка cron — продление включено. acme.sh обновит сертификат примерно за 30 дней до конца срока и выполнит systemctl reload nginx. Проверить цепочку целиком: acme.sh --renew -d example.kz --force, затем снова openssl — дата notAfter должна сдвинуться. Подписка Auto SSL продлевается счётом раз в год (счёт — за 14 дней). Вопросы — в поддержку ONEHOST из личного кабинета, круглосуточно.

Остались вопросы - пишите