Перейти к основному содержимому

Использование 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
  1. 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

Дополнительные настройки

  1. Укажите порт сервера в конфигурационном файле:
    [PassOffice]/bin/config/application.properties
# Порт сервера PassOffice
app.port=443

Рекомендуется использовать 443 порт при включённом SSL/TLS, если SSL не используется, можно оставить порт 80.

Применение и проверка настроек

  1. Поместите файлы сертификатов в папку config/certs.
  2. Отредактируйте файл application.properties согласно примерам выше.
  3. Перезапустите сервер PassOffice.
  4. Проверьте доступность по адресу https://your-hostname.
  5. Не забудьте поменять сертификаты в Терминале, Сервисе интеграции и 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:

  1. Если в конфигурационном файле [PassOffice]/bin/config/application.properties в PassOffice настройка отключена: app.ssl.enabled=false, то схема инфраструктуры будет следующая:

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

  1. Если в конфигурационном файле [PassOffice]/bin/config/application.properties в PassOffice настройка активирована: app.ssl.enabled=true, то схема будет:

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

Примеры конфигурирования без Nginx:

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

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