Просмотров: 2063 (Статистика ведётся с 06.02.2017)

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


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

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

  1. Сначала вы должны получить SSL-сертификат от центра сертификации, который вы выбираете сами. У вас должны быть файлы:
    • site1.bx.key - приватный ключ домена (созданный вами на этапе отправки заявки на получение сертификата или присланный центром сертификации)
    • site1.bx.crt - публичный сертификат домена (присланный центром сертификации)
    Внимание! Если в BitrixVM/BitrixEnv меняется ssl-сертификат с установленного по умолчанию на свой, а сертификат запаролен, то это вызовет проблему в работе мастеров и при перезапуске сервисов. Будет постоянно запрашиваться ввод пароля. Чтобы избежать подобных проблем, нужно удалить пароль из сертификата:
    /path/to/openssl rsa -in /path/to/originalkeywithpass.key -out /path/to/newkeywithnopass.key
    
  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. И в административном интерфейсе произвести необходимые настройки для контента сайта. Рекомендации прочитать можно здесь.

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



1


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