Установка бесплатных сертификатов от Let’s Encrypt на эталонную Bitrix-env

Посвящается Лие Пхакадзе, которая своими странными вопросами и суждениями довела форум 1С-Битрикс до белого каления

Если у вас root доступ к виртуальной машине битрикс, она работает и доступна с интернет, вы можете, особо не напрягаясь, минут за 10-15 настроить получение и, что самое главное, обновление SSL сертификатов для любого количества сайтов, установленных и работающих на bitrix-env. Итак, приступим:

  1. Для начала установим необходимые пакеты. В большинстве случаев они уже будут установлены, но на всякий случай:
    yum -y install git bc
  2. Клонируем репозитарий lets encrypt вам на сервер:
    git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
  3. Собственно, получаем сам сертификат. При этом будут установлены и обновлены соответствующие пакеты системы и 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/
  4. Затем мы сгенерируем файл dhparam:
    openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
  5. После этого начинается самое интересное: нам нужно поправить конфигурационные файлы nginx, у битрикса странное решение, они считают, что ssl настройки для всех сайтов одинаковы и, соответственно, для всех сайтов используется один сертификат. В жизни это, к сожалению, не так, поэтому мы битрикс немного поправим.
    Для начала мы скопируем файл ssl.conf, в котором битрикс держит настройки для ssl всех сайтов.
    cd /etc/nginx/bx/conf/
    cp ssl.conf ssl.вашдомен.ru.conf
    
    затем отредактируем файл ssl.вашдомен.ru.conf
    vi 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;
  6. Осталось немного, в файл /etc/nginx/bx/conf/bitrix_general.conf добавляем строки:
    location ~ /.well-known {
    allow all;
    }
    
    Проверяем конфигурацию
    nginx -t
    Если все хорошо, перезагружаем nginx:
    service nginx restart
  7. Делаем, чтобы наш сертификат обновлялся автоматически:
    crontab –e
    Добавляем строку:
    30 2 * * * /opt/letsencrypt/letsencrypt-auto renew --post-hook "/sbin/service nginx reload" >> /var/log/le-renew.log

Обязательно контролируем наличие после последней значимой строки перехода на следующую строку.

Сохраняем файл и с чувством выполненной работы идем пить чай.

Генеральный директор mit
Денис Диденко

Дата: 14.09.2017

Поделитесь статьей со своими друзьями в социальных сетях.


Назад к списку статей


Хочу такое же

*
*

с условием обработки моих персональных данных

* - Поля, обязательные для заполнения