Сертификаты

Обновление сертификатов Мониторинга и ПринтМенеджера

Когда требуется

По окончании срока действия SSL-сертификатов их необходимо заменить.

Шаги

По окончании срока действия сертификаты потребуется заменить. Для этого выполните обновление Мониторинга и ПринтМененджера с помощью разделов выше и добавьте в команды следующие ключи: SSL_CERT, SSL_KEY u SSL_CERT_CA с указанием новых файлов.

Например, онлайн обновление Мониторинга будет выглядеть так:

sudo curl -L https://s3.printum.io/box/monitoring/install.sh | sudo -E SSL_CERT=/directory/cert.crt SSL_KEY=directory/cert.key SSL_CERT_CA=/directory/ca.crt  bash -s agent

Где:

Обновление сертификатов балансировщика

Описание

Обновление сертификатов в конфигурации с балансировщиком нагрузки (HAProxy). Сертификаты обновляются для всех компонентов: балансировщика, Мониторинга и каждого сервера ПМ.

Обновление собственных сертификатов (через config.ini)

  1. Укажите новые пути в конфигурационном файле config.ini:
Секция [General]

SSL_CERT_CA — полный путь до корневого сертификата (CA certificate).

Секция  [Balancer]

SSL_CERT — Полный путь до сертификата
SSL_KEY — Полный путь до ключа сертификата.

Секция [Monitoring]

SSL_CERT — Полный путь до сертификата
SSL_KEY — Полный путь до ключа сертификата.

Секции [PrintManager_1], [PrintManager_2], …, [PrintManager_N] 

SSL_CERT — Полный путь до сертификата
SSL_KEY — Полный путь до ключа сертификата.

  1. Запустите скрипт установки повторно:
sudo ./install_all_offline.sh

Обновление автоматических сертификатов (ежегодно)

  1. Удалите старые сертификаты на сервере балансировщика:
sudo rm -fr /opt/printum_balancer/certificates
  1. Выпустите новый корневой сертификат:
sudo /opt/printum_balancer/scripts/generate_ca_cert.sh
  1. Перегенерируйте сертификаты:
cd /opt/printum_balancer/scripts
sudo ./regenerate_all_certs.sh -balancer <BALANCER_ADR> -pm <PM_1> -pm <PM_2> -pm <PM_3>
  1. Появится архив с новыми сертификатами. Повторите установку всех серверов ПринтМенеджер с новым архивом printum_certs.tar.gz.

Важно: необходимо переписать только printum_certs.tar.gz. При установке использовался printum_config.tar.gz - его устанавливать не нужно.

Изменение пароля шифрования конфигурационного файла

Описание

Смена пароля для шифрования файла .env.enc выполняется с помощью утилиты env-vault.

Для Мониторинга

  1. Сбросьте переменную среды

     unset ENV_VAULT_PASSWORD
    
  2. Запустите смену пароля

     env-vault rekey /opt/printum/.env.enc
    
  3. Введите текущий пароль, затем новый дважды

  4. После смены запустите систему с новым паролем:

     cd /opt/printum
     sudo -E ENV_VAULT_PASSWORD=<password> env-vault .env.enc docker-compose -- up -d
    

Для ПринтМенеджера

  1. Сбросьте переменную среды

     unset ENV_VAULT_PASSWORD
    
  2. Запустите смену пароля

    env-vault rekey /opt/printmanager/.env.enc
    
  3. Введите текущий пароль, затем новый дважды

  4. Перезапустите систему с новым паролем:

     cd /opt/printmanager
     sudo -E ENV_VAULT_PASSWORD=<password> env-vault .env.enc docker-compose -- up -d
    

Важно

Настройка SSL для служб Мониторинга

Назначение

При установке системы автоматически создаётся самоподписанный SSL-сертификат. Для работы в сети организации это, как правило, не создаёт проблем. Однако в ряде случаев (доступ через интернет, требования ИБ) может потребоваться установка доверенного сертификата.

Для шифрования используются сертификаты стандарта SHA-256 с шифрованием RSA 2048 бит. Пароли не хранятся и не передаются по сети в открытом виде.


Настройка HTTPS

Клиентская служба ПринтМенеджера, отправляющая задания на печать с ПК пользователей, имеет параметр verify_SSL_cert, по умолчанию установленный в false.

При необходимости используйте доверенный сертификат одного из типов:

Важно: для использования встраиваемого приложения настройка HTTPS может быть обязательной для конкретного вендора. При этом сертификат не обязательно должен быть доверенным. Подробнее — в документации по установке встраиваемых приложений.


Настройка проверки HTTPS-сертификата для службы в Linux

Для корректной проверки сертификата и работы Клиента ПринтМенеджер по протоколу HTTPS выполните следующие действия:

  1. Остановите службу Клиента ПМ:
systemctl stop printum-printmanager-client.service
  1. Откройте файл корневого сертификата, который подтверждает подлинность SSL-сертификата, используемого сервером ПМ. Скопируйте из него весь текст, вместе с BEGINEND и дефисами.
  2. Откройте с правами на редактирование файл:
/opt/printum/printmanager_client/venv/lib/python3.10/site-packages/certifi/cacert.pem

Для более ранних версий службы для Linux замените python3.10 на python3.8.

  1. В конец файла вставьте скопированное из шага 2 и сохраните файл.
  2. Перезапустите службу или перезагрузите компьютер.

Настройка проверки HTTPS-сертификата для службы в Windows

  1. Откройте файл корневого сертификата, который подтверждает подлинность SSL-сертификата, используемого сервером ПМ. Скопируйте из него весь текст, вместе с BEGINEND и дефисами.
  2. Откройте с правами на редактирование файл:
C:\Program Files\printum\printmanager_client\lib\certifi\cacert.pem
  1. В конец файла вставьте скопированное из шага 1 и сохраните файл.
  2. Перезапустите службу или перезагрузите компьютер.

Шифрование данных между компонентами

Данные между пользователем и системой, а также между компонентами (Мониторинг и ПринтМенеджер) передаются по протоколу HTTPS.

Тип пароля Метод Описание
Пользовательские пароли (вход в систему) PBKDF2 Хэширование с уникальной «солью» и несколькими десятками итераций
Пароли принтеров, доступа к каталогам и др. AES CBC 128-bit + PKCS7 Шифрование с 128-битным ключом

Связанные страницы

Настройка IPPS для МФУ

Назначение

IPPS (Internet Printing Protocol over SSL) обеспечивает шифрование при отправке заданий печати на МФУ. Настройка требуется при использовании отложенной печати с шифрованием или при требованиях ИБ к защите потока печати.


Настройка IPPS для отложенной печати

  1. Перейдите в раздел «Серверы печати» по адресу:
https://адрес_принтменеджера:8080/config/web/printserver/
  1. Для всех используемых серверов печати установите галочку «Использовать SSL» и сохраните форму.

Для прямой печати через IPPS используйте Клиент ПМ со стандартными настройками — при стандартных настройках IPPS включён по умолчанию.


Установка защищённого соединения с МФУ для отправки задания на печать

  1. Убедитесь, что в настройках МФУ включён доступ с использованием SSL для IPP-соединений, а сертификат сервера загружен в МФУ (или проверка серверного сертификата на МФУ не требуется / выключена).
  2. Перейдите в панель администратора ПринтМенеджера, во вкладку «Настройки принтеров в CUPS».
  3. Найдите нужный принтер и нажмите на него.
  4. Установите адрес для защищённого подключения в соответствии с вендором:
Вендор Адрес
Fplus https://{hostname}/ipp/print
Lexmark https://{hostname}/ipp/print
Xerox ipps://{hostname}/ipp
Konica Minolta ipps://{hostname}/ipp

Где hostname — доменное имя или IP-адрес МФУ.

  1. Сохраните настройки. Обновление займёт до 1 минуты.

Связанные страницы

Шифрование конфигурационного файла .env

Описание

Принтум поддерживает шифрование конфигурационного файла .env с помощью переменной ENV_VAULT_PASSWORD и утилиты env-vault. При включённом шифровании файл хранится в зашифрованном виде (.env.enc), а все команды запуска системы требуют указания пароля.


Активация шифрования при установке Мониторинга

Для активации шифрования при установке дополнительно задайте переменную ENV_VAULT_PASSWORD.

Онлайн-установка

По доменному имени:

sudo curl -L https://download.printum.io/box/monitoring/install.sh | sudo -E MON_HOSTNAME=<hostname> ENV_VAULT_PASSWORD=<password> bash -s agent

По IP-адресу:

sudo curl -L https://download.printum.io/box/monitoring/install.sh | sudo -E IP_ADDRESS=<ip> ENV_VAULT_PASSWORD=<password> bash -s agent

Офлайн-установка

По доменному имени:

sudo MON_HOSTNAME=<hostname> ENV_VAULT_PASSWORD=<password> -E ./install.sh agent

По IP-адресу:

sudo IP_ADDRESS=<ip> ENV_VAULT_PASSWORD=<password> -E ./install.sh agent

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


Активация шифрования при установке ПринтМенеджера

Онлайн-установка:

sudo curl -L https://s3.printum.io/distrib/printum-printmanager/install.sh | sudo -E PM_HOSTNAME=<ip> ENV_VAULT_PASSWORD=<password> bash

Офлайн-установка:

sudo PM_HOSTNAME=<ip> ENV_VAULT_PASSWORD=<password> -E ./install.sh

Без указания переменной ENV_VAULT_PASSWORD установка ПринтМенеджера на зашифрованный сервер мониторинга невозможна.


Изменение значений переменных в зашифрованном .env файле

Для Мониторинга

  1. Перейдите в каталог установки:
cd /opt/printum
  1. Остановите контейнеры:
sudo -E ENV_VAULT_PASSWORD=<password> env-vault .env.enc docker-compose down
  1. Откройте зашифрованный файл для редактирования:
sudo -E ENV_VAULT_PASSWORD=<password> env-vault edit .env.enc

Откроется системный редактор по умолчанию (например, vim). Внесите изменения и сохраните файл (в vim: введите :wq).

  1. Перезапустите контейнеры:
cd /opt/printum
sudo -E ENV_VAULT_PASSWORD=<password> env-vault .env.enc docker-compose -- up -d

Для ПринтМенеджера

Следуйте аналогичной инструкции, заменяя путь к каталогу:

cd /opt/printmanager

Смена пароля шифрования

Для Мониторинга

  1. Сбросьте переменную среды:
unset ENV_VAULT_PASSWORD
  1. Запустите процесс смены пароля:
env-vault rekey /opt/printum/.env.enc
  1. Введите текущий пароль, затем новый пароль дважды для подтверждения.
  2. После смены пароля запустите систему с новым паролем:
cd /opt/printum
sudo -E ENV_VAULT_PASSWORD=<password> env-vault .env.enc docker-compose -- up -d

Для ПринтМенеджера

  1. Сбросьте переменную среды:
unset ENV_VAULT_PASSWORD
  1. Запустите процесс смены пароля:
env-vault rekey /opt/printmanager/.env.enc
  1. Введите текущий пароль, затем новый пароль дважды для подтверждения.
  2. Перезапустите систему с новым паролем:
cd /opt/printmanager
sudo -E ENV_VAULT_PASSWORD=<password> env-vault .env.enc docker-compose -- up -d

Резервное копирование при шифровании

При создании резервной копии на зашифрованной системе необходимо передавать пароль:

sudo -E ENV_VAULT_PASSWORD=<password> /opt/printum/backup.sh /home/user/backup

Для только ПринтМенеджера:

sudo -E ENV_VAULT_PASSWORD=<password> /opt/printmanager/backup.sh /home/user/backup

При отсутствии указания переменной ENV_VAULT_PASSWORD резервная копия может быть создана некорректно.


Примечания


Связанные страницы

Подключение стороннего балансировщика к кластеру

Подключение стороннего балансировщика

По умолчанию система использует HAProxy для балансировки нагрузки. Рекомендуется использовать его в качестве балансировщика нагрузки, так как именно с ним система проходит все этапы тестирования и по умолчанию используется при установке у клиентов. Однако, если необходимо использовать сторонний балансировщик, выполните настройку в соответствии с этой инструкцией.

Важно: При использовании сторонних балансировщиков испытания системы на совместимость не проводились. Мы не можем гарантировать стабильную и бесперебойную работу системы с другими решениями. Использование сторонних балансировщиков осуществляется под вашу ответственность.

Перед началом убедитесь, что ознакомились с разделом "Подготовка к установке кластера Active-Active". Этот раздел актуален для настройки любого балансировщика.

Требования к стороннему балансировщику

  1. Проксирование сообщений: балансировщик должен корректно обрабатывать следующие типы соединений:

    • FTP-соединения: порты 20–21 и 30000–30199.
    • HTTP-соединения: порты 1631, 8010, 8080.
    • WebSocket-соединения (при использовании TCP-конвертера): порты 7776, 7777.

    Если стандартные порты изменены при установке ПМ, укажите новые значения.

  2. Проверка доступности (healthcheck):

    • Балансировщик должен выполнять HTTP-запросы на адрес /health/.
    • Если ответ имеет статус 200, сервер считается исправным. Любой другой ответ означает неисправность.
    • Настройте механизм оповещений о сбоях серверов, доступный в вашем балансировщике.
  3. Параметры настройки:

    • Используйте алгоритм Round Robin с включением Sticky Session.
    • Настройки таймаутов:
      • Таймаут сервера (timeout server): 30 секунд.
      • Таймаут клиента (timeout client): 30 секунд.
      • Таймаут соединения (timeout connection): 5 секунд.
    • Повторы (retries): не требуются.
    • Используйте сгенерированные SSL-сертификаты для балансировщика.

После подготовки настроек установите ваш балансировщик.

Установка и настройка ПринтМенеджеров

Перед установкой первого ПринтМенеджера

Выполните команды для экспорта переменных окружения:

export NFS_ADDR=<NFS_ADDR>
export NFS_PATH=<NFS_FOLDER_PATH>
export DATABASE_URL=postgres://<POSTGRES_LOGIN>:<POSTGRES_PASSWORD>@<DB_HOST>:<PORT>/<BASE_NAME>

Или с указанием конкретной схемы базы данных:

export 	DATABASE_URL=postgres://<POSTGRES_LOGIN>:<POSTGRES_PASSWORD>@<DB_HOST>:<PORT>/<BASE_NAME>?currentSchema=<POSTGRES_SCHEMA>

Если используется табличное пространство, то добавьте команду:

export DATABASE_TABLESPACE=<DATABASE_TABLESPACE>

Укажите настройки Redis и других сервисов (эти команды обязательны):

export REDIS_ROLE=master
export REDIS_SENTINEL_LIST=<IP_1>,<IP_2>,<IP_3>
export REDIS_MASTER_IP=<IP_1>
export PM_HOSTNAME=<IP_1>
export DRIVER_OPTS_TYPE="nfs"
export DRIVER_OPTS_O="addr=<NFS_ADDR>,nolock,soft,rw"
export DRIVER_OPTS_DEVICE=":/scratch"
export EXT_HOSTNAME=<IP_BALANCER>
export REDIS_PASSWORD=<REDIS_PASSWORD>
export CUPS_PASSWORD=<CUPS_PASSWORD>
export FTPD_PASSWORD=<FTPD_PASSWORD>
export WEBDAV_PASSWORD=<WEBDAV_PASSWORD>

Где:

Важно: Оставайтесь в этом же терминале до завершения установки, иначе переменные окружения будут потеряны.

Запустите установку первого ПринтМенеджера.

Установка второго и последующих ПринтМенеджеров

Повторите команды экспорта переменных окружения, изменив:

export REDIS_ROLE=slave
export PM_HOSTNAME=<IP>

Где <IP> — IP-адрес устанавливаемого сервера.

Запустите установку.

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

  1. Проверьте систему по "Чек-листу для проверки корректной установки".
  2. Исключите проверки, связанные с настройкой HAProxy.
  3. Добавьте собственные проверки, актуальные для вашего балансировщика.