Как установить бесплатный SSL-сертификат на виртуальную машину с Bitrix GT

Чтобы установить бесплатный SSL-сертификат Let’s Encrypt на виртуальную машину с шаблоном Bitrix GT, необходимо выполнить следующие шаги:

 

1. Зайдите на виртуальный сервер через протокол удалённого доступа SSH:

Данные для авторизации на виртуальном сервере через SSH вы можете посмотреть в Инструкции к услуге. В Личном кабинете откройте вкладку ТоварыВиртуальные серверы — кнопка Инструкция.

 

2. Выпуск SSL-сертификата от Let’s Encrypt выполняется с помощью специальной утилиты certbot. Для установки данной утилиты запустите предустановленный пакетный менеджер yum:

yum install -y certbot

 

3. Перед выпуском настоящего SSL-сертификата, необходимо обязательно попробовать выпустить его в режиме dry-run (пробный или тестовый прогон). Сделать это можно следующим образом:

certbot certonly --expand -d bitrix-gt.fvds.ru -d www.bitrix-gt.fvds.ru -w /var/www/html --webroot --email webmaster@bitrix-gt.fvds.ru --agree-tos --dry-run

В примере из статьи генерация пробного SSL-сертификата осуществляется на домен bitrix-gt.fvds.ru (и его поддомен четвертого уровня — www.bitrix-gt.fvds.ru). Корневая директория домена — /var/www/html. Доменное имя, почтовый адрес и корневой каталог вам необходимо изменить на свой.

 

4. Если в процессе выпуска в режиме dry-run утилита certbot не сообщила о каких-либо проблемах, то можно выпускать реальный SSL-сертификат. Выполните следующую команду:

certbot certonly --expand -d bitrix-gt.fvds.ru -d www.bitrix-gt.fvds.ru -w /var/www/html --webroot --email webmaster@bitrix-gt.fvds.ru --agree-tos -n

 

5. Файлы созданного SSL-сертификата от Let’s Encrypt находятся в следующих файлах:

/etc/letsencrypt/live/bitrix-gt.fvds.ru/privkey.pem
/etc/letsencrypt/live/bitrix-gt.fvds.ru/fullchain.pem

Откройте конфигурационный файл виртуального хоста и создайте контекст server для обработки соединений по протоколу HTTPS, как это показано видео ниже:

vim /etc/nginx/bx/site_enabled/s1.conf

В данном примере мы скопировали готовый контекст server домена bitrix-gt.fvds.ru. Изменили порт с 80 на 443, включили поддержку SSL и добавили пути к файлам SSL-сертификата. Файл с именем privkey.pem — это приватный ключ, а файл с именем fullchain.pem — цепочка SSL-сертификатов.

Возможно, что конфигурационный файл виртуального хоста вашего домена расположен в другом файле (не в файле по умолчанию s1.conf). Выполните команду ls на каталог /etc/nginx/bx/site_enabled и посмотрите, есть ли какие-нибудь файлы с именем вашего домена:

ls /etc/nginx/bx/site_enabled

Если вы обнаружите конфигурационный файл с именем домена, то вам необходимо работать именно с ним.

 

5.1. Выполнение следующего шага не обязательно и необходимо только в случае, если вы хотите повысить безопасность защищённых соединений. Добавьте в контекст server (там, где только что настраивали SSL) следующие параметры:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384;

 

6. Проверьте, что с корректностью синтаксиса Nginx нет никаких проблем:

nginx -t

Если в выводе команды Nginx сообщит вам, что есть синтаксические ошибки, то внимательно проверьте конфигурацию виртуального хоста. Возможно, что где-то не поставили точку с запятой, ошиблись с путями до файлов SSL-сертификата или не поставили закрывающую фигурную скобку контекста server.

И если всё хорошо и нет синтаксических ошибок, то перезагружайте службу Nginx:

systemctl restart nginx

Теперь ваш сайт может принимать запросы клиентов по защищённому соединению. Проверить корректность установки можно, перейдя на сайт по HTTPS-соединению, или с помощью специализированных ресурсов. Например, sslshopper.com.

 

7. SSL-сертификат от Let’s Encrypt действителен в течение трёх месяцев. По истечению этого периода его требуется перевыпустить. Автоматизировать процесс перевыпуска можно с помощью планировщика задач Cron. Выполните команду crontab -e и добавьте планировщику следующее задание:

0 0 1 */3 * certbot renew --force-renewal --quiet --post-hook "systemctl reload nginx.service"

В первый день каждого третьего месяца в 00:00 перевыпускать SSL-сертификат. После успешного обновления, утилита certbot будет выполнять post-hook на перезагрузку конфигурации Nginx.