# Сертификаты

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

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

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

## Шаги

Выполните обновление Мониторинга или ПринтМенеджера стандартной командой, добавив параметры новых сертификатов.

### Онлайн-обновление Мониторинга с новыми сертификатами

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

### Онлайн-обновление ПринтМенеджера с новыми сертификатами

```
sudo curl -L https://s3.printum.io/distrib/printum-printmanager/install.sh | sudo -E SSL_CERT=/path/cert.crt SSL_KEY=/path/cert.key SSL_CERT_CA=/path/ca.crt bash
```

## Параметры

- `SSL_CERT` — полный путь до сертификата (`.crt`).
- `SSL_KEY` — полный путь до ключа сертификата (`.key`).
- `SSL_CERT_CA` — полный путь до корневого CA-сертификата (`.crt`).

## Проверка

- Откройте ЛК Мониторинга и панель ПринтМенеджер в браузере.
- Убедитесь, что сертификат действителен и браузер не показывает предупреждений.

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

Описание Обновление сертификатов в конфигурации с балансировщиком нагрузки (HAProxy). Сертификаты обновляются для всех компонентов: балансировщика, Мониторинга и каждого сервера ПринтМенеджер. Обновление собственных сертификатов (через config.ini) Укажите новые пути в конфигурационном файле config.ini : # Секция [General] SSL_CERT_CA = /full/path/to/ca.crt # Секция [Balancer] SSL_CERT = /full/path/to/balancer.crt SSL_KEY = /full/path/to/balancer.key # Секция [Мониторинг] SSL_CERT = /full/path/to/mon.crt SSL_KEY = /full/path/to/mon.key # Секции [PrintManager_1], [PrintManager_2], ... SSL_CERT = /full/path/to/pm_N.crt SSL_KEY = /full/path/to/pm_N.key Запустите скрипт установки повторно: sudo ./install_all_offline.sh Обновление автоматических сертификатов (ежегодно) Удалите старые сертификаты на сервере балансировщика: sudo rm -fr /opt/printum_balancer/certificates Выпустите новый корневой сертификат: sudo /opt/printum_balancer/scripts/generate_ca_cert.sh Перегенерируйте сертификаты: cd /opt/printum_balancer/scripts sudo ./regenerate_all_certs.sh -balancer <BALANCER_ADR> -pm <PM_1> -pm <PM_2> -pm <PM_3> Повторите установку всех серверов ПринтМенеджер с новым архивом printum_certs.tar.gz . Важно: необходимо переписать только printum_certs.tar.gz ; файл printum_config.tar.gz устанавливать заново не нужно.

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

## Описание

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

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

```
# Сбросьте переменную среды
unset ENV_VAULT_PASSWORD

# Запустите смену пароля
env-vault rekey /opt/printum/.env.enc

# Введите текущий пароль, затем новый дважды
# После смены запустите систему с новым паролем:
cd /opt/printum
sudo -E ENV_VAULT_PASSWORD=<new_password> env-vault .env.enc docker-compose -- up -d
```

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

```
# Сбросьте переменную среды
unset ENV_VAULT_PASSWORD

# Запустите смену пароля
env-vault rekey /opt/printmanager/.env.enc

# Введите текущий пароль, затем новый дважды
# Перезапустите систему с новым паролем:
cd /opt/printmanager
sudo -E ENV_VAULT_PASSWORD=<new_password> env-vault .env.enc docker-compose -- up -d
```

## Важно

- После смены пароля все последующие операции (обновление, бекап, восстановление) должны выполняться с новым паролем.
- Сохраните новый пароль в надёжном месте.

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

Назначение При установке системы автоматически создаётся самоподписанный SSL-сертификат. Для работы в сети организации это, как правило, не создаёт проблем. Однако в ряде случаев (доступ через интернет, требования ИБ) может потребоваться установка доверенного сертификата. Для шифрования используются сертификаты стандарта SHA-256 с шифрованием RSA 2048 бит. Пароли не хранятся и не передаются по сети в открытом виде. Настройка HTTPS Клиентская служба ПринтМенеджера, отправляющая задания на печать с ПК пользователей, имеет параметр verify_SSL_cert , по умолчанию установленный в false . При необходимости используйте доверенный сертификат одного из типов: Сертификат, приобретённый или полученный у внешнего доверенного центра сертификации. Сертификат, выданный внутренним центром сертификации организации (Enterprise CA). Важно: для использования встраиваемого приложения настройка HTTPS может быть обязательной для конкретного вендора. При этом сертификат не обязательно должен быть доверенным. Подробнее — в документации по установке встраиваемых приложений. Настройка проверки HTTPS-сертификата для службы в Linux Для корректной проверки сертификата и работы Клиента ПринтМенеджер по протоколу HTTPS выполните следующие действия: Остановите службу Клиента ПМ: systemctl stop printum-printmanager-client.service Откройте файл корневого сертификата, который подтверждает подлинность SSL-сертификата, используемого сервером ПринтМенеджер. Скопируйте из него весь текст, вместе с BEGIN , END и дефисами. Откройте с правами на редактирование файл: /opt/printum/printmanager_client/venv/lib/python3.10/site-packages/certifi/cacert.pem Для более ранних версий службы для Linux замените python3.10 на python3.8 . В конец файла вставьте скопированное из шага 2 и сохраните файл. Перезапустите службу или перезагрузите компьютер. Настройка проверки HTTPS-сертификата для службы в Windows Откройте файл корневого сертификата, который подтверждает подлинность SSL-сертификата, используемого сервером ПринтМенеджер. Скопируйте из него весь текст, вместе с BEGIN , END и дефисами. Откройте с правами на редактирование файл: C:\Program Files\printum\printmanager_client\lib\certifi\cacert.pem В конец файла вставьте скопированное из шага 1 и сохраните файл. Перезапустите службу или перезагрузите компьютер. Шифрование данных между компонентами Данные между пользователем и системой, а также между компонентами (Мониторинг и ПринтМенеджер) передаются по протоколу HTTPS. Тип пароля Метод Описание Пользовательские пароли (вход в систему) PBKDF2 Хэширование с уникальной «солью» и несколькими десятками итераций Пароли МФУ, доступа к каталогам и др. AES CBC 128-bit + PKCS7 Шифрование с 128-битным ключом Связанные страницы Настройка IPPS для МФУ Обновление сертификатов Мониторинга и ПринтМенеджера Переменные .env Мониторинга

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

Назначение IPPS (Internet Printing Protocol over SSL) обеспечивает шифрование при отправке заданий печати на МФУ. Настройка требуется при использовании отложенной печати с шифрованием или при требованиях ИБ к защите потока печати. Настройка IPPS для отложенной печати Перейдите в раздел «Серверы печати» по адресу: https://адрес_принтменеджера:8080/config/web/printserver/ Для всех используемых серверов печати установите галочку «Использовать SSL» и сохраните форму. Для прямой печати через IPPS используйте Клиент ПМ со стандартными настройками — при стандартных настройках IPPS включён по умолчанию. Установка защищённого соединения с МФУ для отправки задания на печать Убедитесь, что в настройках МФУ включён доступ с использованием SSL для IPP-соединений, а сертификат сервера загружен в МФУ (или проверка серверного сертификата на МФУ не требуется / выключена). Перейдите в панель администратора ПринтМенеджера, во вкладку «Настройки МФУ в CUPS» . Найдите нужный МФУ и нажмите на него. Установите адрес для защищённого подключения в соответствии с вендором: Вендор Адрес Fplus https://{hostname}/ipp/print Lexmark https://{hostname}/ipp/print Xerox ipps://{hostname}/ipp Konica Minolta ipps://{hostname}/ipp Где hostname — доменное имя или IP-адрес МФУ. Сохраните настройки. Обновление займёт до 1 минуты. Связанные страницы Настройка SSL для служб Мониторинга на Linux Обновление сертификатов Мониторинга и ПринтМенеджера

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

## Описание

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

---

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

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

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

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

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

По IP-адресу:

```
sudo curl -L https://s3.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
```

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

---

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

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

```
| 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
```

2. Остановите контейнеры:

```
sudo -E ENV_VAULT_PASSWORD=<password> env-vault .env.enc docker-compose down
```

3. Откройте зашифрованный файл для редактирования:

```
sudo -E ENV_VAULT_PASSWORD=<password> env-vault edit .env.enc
```

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

4. Перезапустите контейнеры:

```
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
```

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
```

---

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

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

```
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` резервная копия будет создана без расшифровки файла конфигурации.

---

## Примечания

- Для работы с шифрованными файлами необходимо наличие утилиты `env-vault` на сервере.
- При работе с конфигурационными файлами рекомендуется заранее создать резервную копию.

---

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

- [Переменные .env Мониторинга](http://wiki.printum.io/books/8-spravocnik/page/peremennye-env-monitoringa)
- [Переменные .env ПринтМенеджера](http://wiki.printum.io/books/8-spravocnik/page/peremennye-env-printmenedzera)
- [Резервное копирование при шифровании конфигурационного файла](http://wiki.printum.io/books/6-obnovlenie-i-obsluzivanie/page/rezervnoe-kopirovanie-pri-sifrovanii-konfiguracionnogo-faila)
- [Изменение пароля шифрования конфигурационного файла](http://wiki.printum.io/books/6-obnovlenie-i-obsluzivanie/page/izmenenie-parolia-sifrovaniia-konfiguracionnogo-faila)

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

Подключение стороннего балансировщика По умолчанию система использует HAProxy для балансировки нагрузки. Рекомендуется использовать его в качестве балансировщика нагрузки, так как именно с ним система проходит все этапы тестирования и по умолчанию используется при установке у клиентов. Однако, если необходимо использовать сторонний балансировщик, выполните настройку в соответствии с этой инструкцией. Важно : При использовании сторонних балансировщиков испытания системы на совместимость не проводились. Мы не можем гарантировать стабильную и бесперебойную работу системы с другими решениями. Использование сторонних балансировщиков осуществляется под вашу ответственность. Перед началом убедитесь, что ознакомились с разделом "Установка и настройка отказоустойчивой конфигурации". Этот раздел актуален для настройки любого балансировщика. Требования к стороннему балансировщику Проксирование сообщений : балансировщик должен корректно обрабатывать следующие типы соединений: FTP-соединения : порты 20–21 и 30000–30199. HTTP-соединения : порты 1631, 8010, 8080. WebSocket-соединения (при использовании TCP-конвертера): порты 7776, 7777. Если стандартные порты изменены при установке ПринтМенеджер, укажите новые значения. Проверка доступности (healthcheck) : Балансировщик должен выполнять HTTP-запросы на адрес /health/ . Если ответ имеет статус 200 , сервер считается исправным. Любой другой ответ означает неисправность. Настройте механизм оповещений о сбоях серверов, доступный в вашем балансировщике. Параметры настройки : Используйте алгоритм 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> Где: <NFS_ADDR> : IP-адрес или доменное имя сервера NFS. <NFS_FOLDER_PATH> : путь к директории NFS. <POSTGRES_LOGIN>, <POSTGRES_PASSWORD>, <POSTGRES_SCHEMA> : данные для подключения к базе. <IP_1>, <IP_2>, <IP_3> : IP-адреса серверов ПринтМенеджера. <IP_BALANCER> : IP-адрес балансировщика. Важно : Оставайтесь в этом же терминале до завершения установки, иначе переменные окружения будут потеряны. Запустите установку первого ПринтМенеджера. Установка второго и последующих ПринтМенеджеров Повторите команды экспорта переменных окружения, изменив: export REDIS_ROLE=slave export PM_HOSTNAME=<IP> Где <IP> — IP-адрес устанавливаемого сервера. Запустите установку. Проверка корректности установки Проверьте систему по "Чек-листу для проверки корректной установки". Исключите проверки, связанные с настройкой HAProxy. Добавьте собственные проверки, актуальные для вашего балансировщика.