249  /  282

Добавление ssl-сертификатов в BitrixVM

Просмотров: 107401
Дата последнего изменения: 24.10.2019

Внимание!: Данное решение является «лайвхаком», в версиях BitrixVM/BitrixEnv 7.2 и выше есть полная поддержка пользовательских SSL-сертификатов.


Предположим у нас есть сайт http://site1.bx, и нам нужно переключить работу сайта на защищенный протокол https.

Наши действия будут такими:

  1. Сначала вы должны получить SSL-сертификат от центра сертификации, который вы выбираете сами. У вас должны быть файлы:
    • site1.bx.key - приватный ключ домена (созданный вами на этапе отправки заявки на получение сертификата или присланный центром сертификации)
    • site1.bx.crt - публичный сертификат домена (присланный центром сертификации)

  2. Далее загружаем полученные сертификаты от центра сертификации, например, в директорию /etc/nginx/ssl/ с помощью любого менеджера файлов по протоколу sftp (например WinSCP).

  3. Дальнейшие команды выполняются в консоли виртуальной машины BitrixVM/BitrixEnv (0. Exit в главном меню) либо аналогичные действия в менеджере файлов, как удобнее.

  4. При обновлении виртуальной машины BitrixVM/BitrixEnv возможна автоматическая перезапись стандартных файлов nginx, поэтому скопируем файл конфигурации ssl.conf в новый файл site1.bx_ssl.conf (название файла может быть любым). Для удобства, это делается для каждого сайта, если их у вас несколько:
    cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/site1.bx_ssl.conf
    
  5. Затем редактируем файл /etc/nginx/bx/conf/site1.bx_ssl.conf и указываем расположение site1.bx.key (приватный ключ домена) и site1.bx.crt (публичный сертификат домена) в директивах nginx ssl_certificate_key и ssl_certificate соответственно.
    ssl_certificate /etc/nginx/ssl/site1.bx.crt;	# публичный сертификат домена
    ssl_certificate_key /etc/nginx/ssl/site1.bx.key;# приватный ключ домена
    
  6. Открываем файл /etc/nginx/bx/site_avaliable/bx_ext_ssl_site1.bx.conf и ищем в нем строку:
    include bx/conf/ssl.conf;
    
    и меняем на:
    include bx/conf/site1.bx_ssl.conf;
    

    Примечание: Для сайта по умолчанию s1 (который находится в директории /home/bitrix/www) файл будет называться /etc/nginx/bx/site_avaliable/s1.ssl.conf, а для дополнительных сайтов (которые создаются в директории /home/bitrix/ext_www/название_хоста) - /etc/nginx/bx/site_avaliable/bx_ext_ssl_название_хоста.conf.

  7. Проверяем, что конфигурационные файлы nginx без ошибок:
    nginx -t
    
  8. И если все в порядке, перезапускаем nginx:

    CentOS 6:

    service nginx restart
    

    CentOS 7:

    systemctl restart nginx.service
    
  9. Далее можно переключить работу сайта только по протоколу https в меню 6. Mange sites in the pool > 5. Change https settings on site. Как это сделать написано здесь.

  10. И в административном интерфейсе произвести необходимые настройки для контента сайта. Рекомендации прочитать можно здесь.

Внимание! В случае использования NTLM-авторизации по протоколу https нужно еще также указать пути до SSL-сертификата в файле /etc/httpd/bx/conf/ntlm_bitrix.conf.


Теперь даже после обновления виртуальной машины BitrixVM/BitrixEnv, если стандартные файлы конфигурации nginx будут изменены, то сайт продолжит работать по протоколу https.



9
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии