Просмотров: 16816
Дата последнего изменения: 06.10.2020
Сложность урока:
4 уровень - сложно, требуется сосредоточится, внимание деталям и точному следованию инструкции.
5
Предположим у нас есть сайт http://site1.bx, и нам нужно переключить работу сайта на защищенный протокол https.
Наши действия будут такими:
- Сначала вы должны получить SSL-сертификат от центра сертификации, который вы выбираете сами. У вас должны быть файлы:
- site1.bx.key - приватный ключ домена (созданный вами на этапе отправки заявки на получение сертификата или присланный центром сертификации)
- site1.bx.crt - публичный сертификат домена (присланный центром сертификации)
Внимание! Если в
BitrixVM/BitrixEnv меняется ssl-сертификат с установленного по умолчанию на свой, а сертификат запаролен, то это вызовет проблему в работе мастеров и при перезапуске сервисов. Будет постоянно запрашиваться ввод пароля. Чтобы избежать подобных проблем, нужно удалить пароль из сертификата:
/path/to/openssl rsa -in /path/to/originalkeywithpass.key -out /path/to/newkeywithnopass.key
- Далее загружаем полученные сертификаты от центра сертификации, например, в директорию
/etc/nginx/ssl/
с помощью любого менеджера файлов по протоколу sftp (например WinSCP).
- Дальнейшие команды выполняются в консоли виртуальной машины BitrixVM/BitrixEnv (0. Exit в главном меню) либо аналогичные действия в менеджере файлов, как удобнее.
- При обновлении виртуальной машины BitrixVM/BitrixEnv возможна автоматическая перезапись стандартных файлов nginx, поэтому скопируем файл конфигурации
ssl.conf
в новый файл site1.bx_ssl.conf
(название файла может быть любым). Для удобства, это делается для каждого сайта, если их у вас несколько:
cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/site1.bx_ssl.conf
- Затем редактируем файл
/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; # приватный ключ домена
- Открываем файл
/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
.
- Проверяем, что конфигурационные файлы nginx без ошибок:
nginx -t
- И если все в порядке, перезапускаем nginx:
CentOS 6:
service nginx restart
CentOS 7:
systemctl restart nginx.service
- Далее, по желанию, можно переключить работу сайта только по протоколу https в меню 6. Manage sites in the pool > 5. Change https settings on site. Как это сделать написано здесь.
- И в административном интерфейсе произвести необходимые настройки для контента сайта. Рекомендации прочитать можно здесь.
Теперь даже после обновления виртуальной машины BitrixVM/BitrixEnv, если стандартные файлы конфигурации nginx будут изменены, то сайт продолжит работать по протоколу https.