Использование SSL
По умолчанию обмен данными между сервером PassOffice и клиентами осуществляется по защищённому протоколу HTTPS.
Для поддержки шифрования TLS/SSL в поставку PassOffice включён самоподписанный сертификат, который рекомендуется заменить на ваш собственный сертификат.
Поддерживаемые форматы сертификатов
Для настройки SSL/TLS используются два хранилища сертификатов:
- Key Store (серверное хранилище). Содержит сертификат самого сервера PassOffice и соответствующий ему приватный ключ. Используется для того, чтобы внешние клиенты (браузеры, терминалы и т.д.) могли безопасно подключаться к серверу по протоколу TLS/HTTPS.
- Trust Store (клиентское хранилище). Содержит список доверенных сертификатов центров сертификации (CA). Используется PassOffice при отправке исходящих HTTPS-запросов к внешним системам, чтобы сервер мог проверить подлинность удалённых ресурсов.
В Key Store обязательно должны присутствовать как сертификат сервера, так и соответствующий ему приватный ключ. Без приватного ключа защищённое соединение невозможно.
PassOffice позволяет настроить SSL-сертификат двумя способами:
- Загрузить сертификат и приватный ключ отдельными файлами.
- Загрузить один файл-хранилище (PKCS12), содержащий и сертификат, и приватный ключ.
Для Trust Store обычно достаточно только сертификата.
Настройка в файле application.properties
Файл находится по пути: [PassOffice]/bin/config/application.properties
1. Key Store (сертификат сервера)
В этом разделе укажите сертификат сервера и приватный ключ. Эти данные нужны для того, чтобы внешние клиенты могли подключаться к PassOffice по защищённому протоколу HTTPS.
Пример конфигурации для PEM-сертификатов:
# Включение SSL/TLS
app.ssl.enabled=true
# Тип сертификата
app.ssl.keystore.type=pem
# Путь к публичному сертификату
app.ssl.keystore.certificate=config/certs/PassOfficeCert.pem
# Путь к приватным ключам для сертификата
app.ssl.keystore.private-key=config/certs/PassOfficePrivateKey.pem
# Путь к приватным ключам
app.ssl.keystore.password=your_password
Пример конфигурации для сертификатов PKCS12:
# Тип сертификата
app.ssl.keystore.type=pkcs12
# Путь к хранилищу сертификатов
app.ssl.keystore.location=config/certs/keystore2.p12
# Пароль от хранилища
app.ssl.keystore.password=your_password
- Trust Store (доверенные сертификаты)
В этом разделе необходимо указать доверенные сертификаты (CA), которые будут использоваться PassOffice при установке исходящих HTTPS-соединений с внешними системами.
Пример конфигурации для PEM-сертификатов:
# Тип сертификата
app.ssl.truststore.type=pem
# Путь к публичному сертификату
app.ssl.truststore.certificate=config/certs/PassOfficeTrusted.pem
# Отключает строгую проверку DNS-имён и цепочки
app.ssl.truststore.weak-check=true
Пример конфигурации для сертификатов PKCS12:
# Тип сертификата
app.ssl.truststore.type=pkcs12
# Путь к хранилищу сертификатов
app.ssl.truststore.location=config/certs/keystore2.p12
# Пароль от хранилища
app.ssl.truststore.password=your_password
# Отключает строгую проверку DNS-имён и цепочки
app.ssl.truststore.weak-check=true
Дополнительные настройки
- Укажите порт сервера в конфигурационном файле:
[PassOffice]/bin/config/application.properties
# Порт сервера PassOffice
app.port=443
Рекомендуется использовать 443 порт при включённом SSL/TLS, если SSL не используется, можно оставить порт 80.
Применение и проверка настроек
- Поместите файлы сертификатов в папку
config/certs. - Отредактируйте файл
application.propertiesсогласно примерам выше. - Перезапустите сервер PassOffice.
- Проверьте доступность по адресу
https://your-hostname. - Не забудьте поменять сертификаты в Терминале, Сервисе интеграции и Nginx.
Настройка SSL в Docker
1. Подготовка
Создайте на хост-машине папку для сертификатов, например:
mkdir -p ./certs
Поместите туда ваши сертификаты (PEM или PKCS12).
2. Volumes в docker-compose.yml
services:
passoffice:
image: your-passoffice-image
ports:
- "443:443" # или нужный вам порт
volumes:
# Основная конфигурация
- ./config/application.properties:/app/bin/config/application.properties:ro
# Сертификаты
- ./certs:/app/bin/config/certs:ro
# Опционально — вся папка config
# - ./config:/app/bin/config:ro
environment:
- TLS_ENABLED=true
3. Минимально необходимые volumes
volumes:
- ./config/application.properties:/app/bin/config/application.properties:ro
- ./certs:/app/bin/config/certs:ro
После монтирования отредактируйте application.properties (как в предыдущих примерах) и перезапустите контейнер:
docker compose down
docker compose up -d
Примеры конфигурирования с Nginx:
- Если в конфигурационном файле
[PassOffice]/bin/config/application.propertiesв PassOffice настройка отключена:app.ssl.enabled=false, то схема инфраструктуры будет следующая:

Схема инфраструктуры клиентского доступа к PassOffice через HTTP c Nginx
- Если в конфигурационном файле
[PassOffice]/bin/config/application.propertiesв PassOffice настройка активирована:app.ssl.enabled=true, то схема будет:

Схема инфраструктуры клиентского доступа к PassOffice через HTTPS c Nginx
Примеры конфигурирования без Nginx:
- Если в конфигурационном файле
[PassOffice]/bin/config/application.propertiesв PassOffice настройка активирована:eapp.ssl.enabled=true, но Nginx не используется, то схема инфраструктуры будет следующая:

Схема инфраструктуры клиентского доступа к PassOffice через HTTPS без Nginx