DCImanager 6

Подключение SSL-сертификата

Чтобы сервер с платформой был доступен по протоколу HTTPS, вам понадобится SSL-сертификат. Вы можете указать данные сертификата при установке платформы или подключить его позднее. Чтобы приобрести SSL-сертификат, обратитесь в любой сервис выдачи сертификатов или выпустите бесплатный сертификат Let’s Encrypt. Подробнее о Let's Encrypt см. в официальной документации.

В статье описан порядок выпуска, подключения и замены SSL-сертификата.

Выпуск сертификата на сервере с платформой

В разделе описан порядок выпуска нового сертификата с помощью утилиты certbot. Воспользуйтесь инструкцией из раздела, если вам нужно создать сертификат с автоматическим продлением и приватный ключ на сервере платформы.

Для создания сертификата потребуется имя домена, закреплённое за сервером платформы в DNS-сервере. Это же имя должно быть указано в файле конфигурации платформы /opt/ispsystem/dci/config.json, в параметре DomainName.

Для выпуска и выгрузки сертификата:

  1. Установите утилиты certbot и jq:

    Ubuntu, Astra Linux
    apt install software-properties-common
    add-apt-repository ppa:certbot/certbot
    apt update
    apt install certbot
    apt install jq
    AlmaLinux
    dnf update
    dnf install epel-release
    dnf install certbot
    dnf install jq
  2. Отключите платформу, чтобы позволить утилите certbot использовать локальный HTTP-сервер для валидации сертификата:

    dci stop
  3. Выпустите сертификат:
    1. Запустите утилиту certbot и передайте ей имя домена из файла конфигурации:

      certbot certonly -d $(jq -r ".DomainName" /opt/ispsystem/dci/config.json)
    2. Подтвердите, что вы владеете указанным доменным именем. Утилита предложит вам несколько вариантов подтверждения. Введите 1, чтобы использовать локальный сервер:

      How would you like to authenticate with the ACME CA?
      ...
      Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
    3. Если у вас есть сертификат с типом RSA, certbot предложит изменить тип его ключа на ECDSA. Рекомендуем изменить тип, так как это ускорит загрузку веб-интерфейса платформы. Введите U, чтобы подтвердить замену:

      An RSA certificate named dci6.example.com already exists. Do you want to update its
      key type to ECDSA?
      (U)pdate key type/(K)eep existing key type: U

      Вы получите сообщение, в котором указано место хранения сертификата и приватного ключа. Пример вывода для доменного имени "dci6.example.com":

      Successfully received certificate.
      Certificate is saved at: /etc/letsencrypt/live/dci6.example.com/fullchain.pem
      Key is saved at: /etc/letsencrypt/live/dci6.example.com/privkey.pem
  4. Запустите платформу:

    dci start
  5.  Создайте файл патча patch_add_ssl.yaml. Пример содержания файла для доменного имени "dci6.example.com":

    version: "3.7"
    services:
      input:
        volumes:
          - /etc/letsencrypt/live/dci6.example.com/fullchain.pem:/etc/ssl/certs/default.domain.crt
          - /etc/letsencrypt/live/dci6.example.com/privkey.pem:/etc/ssl/private/default.domain.key
  6. Примените созданный патч: 

    dci add-patch -f patch_add_ssl.yaml -p add_ssl
  7. Certbot автоматически перевыпускает сертификат, когда у него заканчивается срок действия. Вы можете проверить работу автопродления с помощью команды:

    certbot renew --dry-run

Подключение имеющегося сертификата

Выполните инструкции из этого раздела, если у вас уже есть сертификат. Подключить имеющийся сертификат можно во время или после установки платформы.

Подключение сертификата при установке платформы

  1. Скопируйте файлы сертификата на сервер с DCImanager 6. Например, в директорию /root/.
  2. При установке платформы укажите путь к файлам с открытым и приватным ключом SSL-сертификата в параметрах ssl-crt-file и ssl-key-file: 

    Пример команды
    ./dci install --ssl-crt-file="/root/example.crt" --ssl-key-file="/root/example.key"

Данные сертификата будут добавлены в настройки веб-сервера.

Файлы сертификата будут скопированы в директорию /opt/ispsystem/dci/ssl/. Для корректной работы платформы файлы должны храниться в этой директории с теми же именами.

Подключение сертификата после установки платформы

  1. Скопируйте файлы сертификата на сервер с DCImanager 6. Например, в директорию /root/.

    После подключения файлы сертификата должны оставаться в этой директории с теми же именами. 
  2. Подключитесь к серверу с DCImanager 6 по SSH.
  3. Создайте файл patch_add_ssl.yaml со следующим содержанием: 

    version: "3.7"
    services:
      input:
        volumes:
          - /root/dci.crt:/etc/ssl/certs/default.domain.crt
          - /root/dci.key:/etc/ssl/private/default.domain.key
    Пояснения
    Не изменяйте значения /etc/ssl/certs/default.domain.crt и /etc/ssl/private/default.domain.key — это пути к сертификату внутри контейнера docker.
  4. Выполните команду: 

    dci add-patch -f patch_add_ssl.yaml -p add_ssl
  5. Укажите доменное имя сервера в параметре DomainName конфигурационного файла /opt/ispsystem/dci/config.json:

    Пример файла config.json
    {"MysqlRootPassword":"password","LicenseToken":"token","DomainName":"dci6.example.com","CurrentVersion":"6.14.0","UpdateDate":1616262495}
  6. Остановите DCImanager 6:

    dci down
  7. Запустите DCImanager 6:

    dci start

Замена сертификата

  1. Замените старые файлы сертификата на актуальные. У новых файлов должны быть такие же имена, как у старых.
  2. Остановите DCImanager 6:

    dci down
  3. Запустите DCImanager 6:

    dci start
Может быть полезно

Связанные статьи: