Nginx в BitrixVM: SSL-конфиг для Let's Encrypt
Минимальный конфиг nginx для использования сертификатов Let's Encrypt в BitrixVM. Файлы в /etc/nginx/bx/conf/ и подключение через include в site_avaliable.
В BitrixVM nginx обслуживает сайты по конфигам из /etc/nginx/bx/siteavaliable/. Чтобы включить HTTPS с сертификатами Let's Encrypt, нужно указать пути к fullchain.pem и privkey.pem и при необходимости редирект с HTTP на HTTPS. Проблема: в дистрибутиве каталог называется siteavaliable (с опечаткой); SSL-настройки удобно вынести в отдельный файл в /etc/nginx/bx/conf/ и подключать через include. Без правильных путей к сертификату nginx не запустится или отдаст ошибку 502/497. Симптомы: после выпуска certbot сайт по HTTPS не открывается, ошибка 497 (Request sent to HTTPS port over HTTP). Ниже — минимальный конфиг SSL для BitrixVM и проверка по httpsservers.html" class="text-primary underline hover:text-primary/80 border-b border-primary/40 hover:border-primary" target="_blank" rel="noopener noreferrer">документации nginx.
Подключение сертификатов Let's Encrypt в nginx под BitrixVM. Конфигурации сайтов лежат в /etc/nginx/bx/site_avaliable/. SSL выносится в отдельный файл в /etc/nginx/bx/conf/ и подключается через include.
Создаётся файл вида /etc/nginx/bx/conf/ssl.example.com.conf. Замените example.com на свой домен.
# Редирект при обращении по HTTP к порту 443 (ошибка 497)
error_page 497 https://$host$request_uri;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
Подключение в виртуальном хосте
В файле /etc/nginx/bx/siteavaliable/bxextsslexample.com.conf в блоке server с listen 443 ssl; добавьте одну строку:
server {
listen 443 ssl;
server_name example.com www.example.com;
include bx/conf/ssl.example.com.conf;
# остальные директивы сайта (root, location и т.д.)
}
Путь в include задаётся относительно каталога конфигов nginx (обычно /etc/nginx/), поэтому bx/conf/ssl.example.com.conf указывает на файл в BitrixVM-структуре.
- Синтаксис конфига — после создания или правки файлов:
sudo nginx -t
Ожидаем: «syntax is ok», «test is successful». При ошибке пути к сертификату (файл не найден) nginx -t покажет предупреждение или ошибку.
- Применение конфига — без обрыва активных соединений:
sudo systemctl reload nginx
Используйте reload, а не restart.
- Доступность сайта по HTTPS — откройте в браузере или проверьте заголовки:
curl -I https://example.com/
Ожидаем ответ 200 (или 301/302 при редиректе). В браузере соединение должно быть защищённым (сертификат Let's Encrypt). При ошибке 497 проверьте, что в конфиге 443 есть errorpage 497 https://$host$requesturi; и что запрос идёт по HTTPS.
- Пути к сертификатам — сертификаты после выпуска через certbot webroot лежат в
/etc/letsencrypt/live/ДОМЕН/. Имена в ssl.*.conf должны совпадать с этим путём.
- Опечатка в каталоге — в BitrixVM каталог называется
siteavaliable, а неsites-available. Конфиги SSL для расширений — вbxextssl*.confв этом каталоге. - Неверный путь в include — путь в
includeсчитается от директивы включения или от корня конфигов. Убедитесь, что файлbx/conf/ssl.example.com.confсуществует относительно того каталога, откуда nginx его подхватывает (часто/etc/nginx/). - Сертификат не найден — до включения конфига выпустите сертификат (certbot certonly --webroot). После продления сертификата достаточно
systemctl reload nginx, перезапуск не обязателен. - HTTP не редиректит на HTTPS — редирект с 80 на 443 настраивается отдельным блоком server (listen 80; return 301 https://$host$request_uri;). В данном сниппете описан только блок 443 и include SSL-файла.
- BitrixVM (prod): CentOS/RHEL, nginx из дистрибутива BitrixVM. После выпуска сертификата через blank" rel="noopener noreferrer">certbot webroot и настройки конфига — blank" rel="noopener noreferrer">продление по cron с deploy-hook и reload nginx.
- Один домен на сервер — создайте один ssl.ДОМЕН.conf и подключите его в соответствующем bxextssl_ДОМЕН.conf.
Связанные сниппеты: blank" rel="noopener noreferrer">Certbot: выпуск сертификата webroot в BitrixVM, blank" rel="noopener noreferrer">Certbot: продление и cron с deploy-hook, Структура каталогов nginx для сайта.
Источники: httpsservers.html" class="text-primary underline hover:text-primary/80 border-b border-primary/40 hover:border-primary" target="_blank" rel="noopener noreferrer">nginx — Configuring HTTPS servers, структура каталогов BitrixVM по документации дистрибутива.