Если у вас root доступ к виртуальной машине битрикс, она работает и доступна с интернет, вы можете, особо не напрягаясь, минут за 10-15 настроить получение и, что самое главное, обновление SSL сертификатов для любого количества сайтов, установленных и работающих на bitrix-env. Итак, приступим:
- Для начала установим необходимые пакеты. В большинстве случаев они уже будут установлены, но на всякий случай:
yum -y install git bc
- Клонируем репозитарий lets encrypt вам на сервер:
git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
- Собственно, получаем сам сертификат. При этом будут установлены и обновлены соответствующие пакеты системы и python, на котором написан скрипт получения сертификата:
cd /opt/letsencrypt ./letsencrypt-auto certonly -a webroot --webroot-path=/home/bitrix/www -d вашдомен.ru
--webroot-path=/home/bitrix/www
меняем на путь к нужному сайту, в а параметре –d прописываем нужный домен, для которого получаем сертификат. Тут есть один нюанс: для получения, к примеру, сертификата на сам домен вашдомен.ru и поддомен www надо добавить два ключика –d-d вашдомен.ru -d www.вашдомен.ru
После этого скриптик задаст вам три вопроса: первый попросит ввести емейл, на который присылать инфу по сертификату, спросит согласны ли вы с лицензией и публиковать ли информацию о вас на сайте lets encrypt. После этого, собственно, будет получен сам сертификат. Сертификат будет сохранен в папку /etc/letsencrypt/live/вашдомен.ru/ - Затем мы сгенерируем файл dhparam:
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
- После этого начинается самое интересное: нам нужно поправить конфигурационные файлы nginx, у битрикса странное решение, они считают, что ssl настройки для всех сайтов одинаковы и, соответственно, для всех сайтов используется один сертификат. В жизни это, к сожалению, не так, поэтому мы битрикс немного поправим.
Для начала мы скопируем файл ssl.conf, в котором битрикс держит настройки для ssl всех сайтов.cd /etc/nginx/bx/conf/ cp ssl.conf ssl.вашдомен.ru.conf
затем отредактируем файл ssl.вашдомен.ru.confvi ssl.вашдомен.ru.conf
нам нужно как минимум поменять строкиssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/cert.pem;
наssl_certificate /etc/letsencrypt/live/вашдомен.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/вашдомен.ru/privkey.pem;
И добавим строчкуssl_dhparam /etc/ssl/certs/dhparam.pem;
- Осталось немного, в файл /etc/nginx/bx/conf/bitrix_general.conf добавляем строки:
location ~ /.well-known { allow all; }
Проверяем конфигурациюnginx -t
Если все хорошо, перезагружаем nginx:service nginx restart
- Делаем, чтобы наш сертификат обновлялся автоматически:
crontab –e
Добавляем строку:30 2 * * * /opt/letsencrypt/letsencrypt-auto renew --post-hook "/sbin/service nginx reload" >> /var/log/le-renew.log
Обязательно контролируем наличие после последней значимой строки перехода на следующую строку.
Сохраняем файл и с чувством выполненной работы идем пить чай.