Консультация Oblako.kz

Установка SSL-сертификата на 1С-Битрикс

Генерация CSR-запроса и заказ SSL-сертификата

Для установки SSL-сертификата вашего веб-сайта в CMS 1C-Битрикс необходимо сперва сгенерировать CSR-запрос и заказать SSL-сертификат через панель управленияТак как система управления интернет проектами "1С-Битрикс" работает под управлением дистрибутива Linux CentOS, то для генерации CSR-запроса вы можете воспользоваться общей инструкцией для Linux (см. перечень команд для CentOS). 

После генерации CSR-запроса и заказа SSL-сертификата через панель управления необходимо установить полученные сертификаты .CRT и .CA на сервер 1C-Битрикс

После получения SSL-сертификата файлы для его установки появятся в панели управления (меню SSL):
.CA - файл цепочки сертификатов Центра Сертификации (Certificate Authority).
.CRT - файл сертификата для вашего сайта (сайтов).

ca-crt-1cloud-panel

Загрузка необходимых файлов на веб-сервер

Прежде всего, необходимо загрузить представленные в панели файлы .ca и .crt на веб-сервер 1С-Битрикс. Самый простой способ - загрузить эти файлы на другой компьютер, а затем перенести их на сервер одним из приведенных ниже способов.

Примечание: подразумевается, что необходимая для работы пара закрытый/открытый ключ была сгенерирована на том же веб-сервере 1С-Битрикс, на который вы будете переносить приобретенный сертификат. Если вы создавали ключи на другой машине, вам необходимо также перенести файл закрытого ключа .key на ваш веб-сервер по аналогии с описанной ниже процедурой копирования файлов сертификатов.

Перенос сертификатов с компьютера Linux/Mac OS:

Самый простой способ загрузки сертификатов на сервер - опция SCP, встроенная в возможность терминала вашего компьютера:

  1. Загрузите файлы .CA и .CRT из панели управления на локальный компьютер.
  2. Откройте терминал и перейдите в папку, в которую вы сохранили сертификаты (напр., Downloads):
    cd ~/Downloads
    Скопируйте сертификаты вашего сайта и Центра Сертификации на веб-сервер:
    scp crt.crt ca.crt user@1.22.33.444:/etc/ssl
    Где:
    scp - команда копирования файлов
    mydomain.ru_crt.crt - имя загруженного из панели файла сертификата вашего веб-сайта
    mydomain.ru_ca.crt - имя загруженного из панели файла сертификата Центра Авторизации
    user - имя вашего пользователя для подключения к серверу через ssh (часто используется root)
    1.22.33.444 - IP-адрес вашего веб-сервера
    /etc/ssl - директория на удаленном сервере, в которую в хотите сохранить загружаемые файлы.

Перенос сертификатов с компьютера Windows:

  1. Установите программу WinSCP. Скачать ее можно здесь.
  2. Запустите WinSCP. В открывшемся окне введите данные, которые  вы используете для подключени я к вашему серверу по SSH.
    В левой части окна программы отображаются файлы на локальном компьютере, в правой - на подключенном удаленном сервере. Выберите или создайте директорию, в которую вы хотите сохранить сертификаты, в правой части окна. Перетащите файлы .CA и .CRT в эту директорию из левой части окна.

Примечение: для удобства в дальнейшем рекомендуем перенести файл закрытого ключа (.key) в ту же директорию, в которую вы скопировали файлы сертификатов. Вы можете не делать этого, но таком случае запомните путь до этого файла и в дальнейшем укажите его в файле конфигурации Apache вместо пути, приведеленного в нашем примере.

Если закрытый ключ .key был сгенерирован непосредственно на сервере, то для его копирования в другую директорию вы можете использовать команду:
cp /home/root/private.key /etc/ssl/private.key
Где:
cp - команда копирования
/home/root/ - путь до файла ключа
private.key - имя файла ключа
/etc/ssl/private.key - путь, по которому необходимо скопировать файл ключа

Удалить файл ключа из старого расположения вы можете с помощью команды:
rm /home/root/private.key
(синтаксис команды аналогичен предыдущему примеру)

Настройка сервера 1C-Битрикс на использование SSL-сертификата

После копирования файлов сертификата сайта и Центра Сертификации необходимо отредактировать параметры вашего сервера 1С-Битрикс. Для этого подключитесь к вашему серверу по SSH от имени пользователя root и выполните следующие операции:

  1. После подключения к серверу отобразится консоль 1С-Битрикс с доступными действиями (Available Actions). Сейчас нам нужна не она, а непосредственно командная строка CentOS. Нажмите 0 для перехода в нее.
  2. Объедените загруженные на сервер ранее файлы сертификата Центра Сертификации (.CA) и сертификата вашего веб-сайта (.CRT) в один документ:
    cat /etc/ssl/mydomain.ru_crt.crt /etc/ssl/mydomain.ru_ca.crt >> mydomain.crt
  3. Откройте файл конфигурации ssl.conf:
    nano /etc/nginx/bx/conf/ssl.conf
    Примечание: если редактор nano не установлен на вашем сервере, вы можете установить его с помощью команды yum install nano
  4. В открытом файле отредактируйте пути до загруженных ранее файлов сертификатов:
    ssl_certificate /etc/ssl/mydomain.crt;
    ssl_certificate_key /etc/ssl/private.key;

    Где:
    /etc/ssl/mydomain.crt - путь до файла сертификатов вашего сайта и центра сертификации
    /etc/ssl/private.key - путь к файлу вашего закрытого ключа

    Пример файла ssl.conf:

    # If they come here using HTTP, bounce them to the correct scheme
    # Nginx internal code used for the plain HTTP requests
    # that are sent to HTTPS port to distinguish it from 4XX in a log and an error page redirection.
    error_page 497 https://$host$request_uri;

    # Increase keepalive connection lifetime
    keepalive_timeout    70;
    keepalive_requests    150;

    # SSL encryption parameters
    ssl                     on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESG$
    ssl_prefer_server_ciphers on;

    ssl_certificate         /etc/ssl/mydomain.crt;
    ssl_certificate_key     /etc/ssl/private.key;

    # performance
    ssl_session_cache    shared:SSL:10m;
    ssl_session_timeout     10m;

  5. Теперь нужно активировать опцию SSL в консоли управления 1C-Битрикс. Для этого отключитесь от сервера, а затем повторно подключитесь к нему по SSH. 
    В открывшейся консоли Available Actions вводим 6 (Manage sites in the pool), а затем 5 (Change https settings on sites).
    Если на вашем сервере Битрикс установлен только один веб-сайт, можно просто нажать Enter в ответ на запрос имени сайта (Enter site name). Если же сайтов несколько, введите название веб-сайта, для которого вы устанавливаете SSL-сертификат и нажмите Enter. В ответ вам будет предложено отключить доступ по HTTP (незащищенному протоколу) для данного сайта. Если вы хотите сохранить такой доступ, нажмите n. Если вы хотите, чтобы сайт теперь был доступен только по защищенному протоколу https, нажмите Y.

  6. Перезагрузите сервер:
    reboot

Проверка настроек

На этом процедура установки SSL-сертификата на CMS 1С-Битрикс завершена. Для проверки корректности настроек откройте откройте ваш-веб сайт в браузере по протоколу https (например, https://mydomain.ru). Если сертификат установлен корректно, в адресной строке вашего браузера вы увидите иконку замка, при клике на которую будет отображена информация о приобретенном вами SSL-сертификате. 

Последнее обновление: 07.10.2022

Выберите SSL-сертификат,
ответив на 3 вопроса