Тип сервиса GostProxy#

В контексте service объявляется соответствующий тип сервиса service_gost_proxy:

service:
  service_gost_proxy:

Общая логика заполнения выглядит следующим образом:

  • TLS → GOST TLS

    Если требует клиентское подключение к ГОСТ сервису:

    Для слушателя SOWA — настраивается service_http_proxy, согласно общим правилам из его документации. Для перенаправления потока в ГОСТ proxy - создается второй сервис типа service_gost_proxy. В директиве listen которого указывается тип encryption: gost, затем в следующей вложенной директиве proxy указывается сервер, на который будут перенаправляться запросы, а также ГОСТовые хранилища ключей.

  • GOST TLS → TLS

    Если требует определить сову как сервер, к которому будет устанавливаться ГОСТ подключение:

    Для ГОСТ слушателя SOWA — настраивается сервис service_gost_proxy, у которого в директиве listen выставляется порт, encryption: gost, а так же ГОСТовые хранилища ключей.

    Для перенаправления потока в обычный proxy — создается второй сервис service_http_proxy, который настраивается согласно общим правилам из его документации.

  • GOST TLS→ GOST TLS

    Если требуется ГОСТ с обеих сторон, для ГОСТ слушателя SOWA — настраивается сервис service_gost_proxy, у которого в директиве listen выставляется порт, encryption: gost, а так же ГОСТовые хранилища ключей.

    Для перенаправления потока в ГОСТ proxy — создается второй сервис типа service_gost_proxy. В директиве listen которого указывается тип encryption: gost, затем в следующей вложенной директиве proxy указывается сервер, на который будут перенаправляться запросы, а так же ГОСТовые хранилища ключей.

    Затем создается сервис service_http_proxy, через upstream которого соединяются два ГОСТовых сервиса.

GostProxy - основные параметры#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

id

Обязательный

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

Текстовое значение (строка, число или их комбинация, разделитель — «_»)

—

passwords_path

Обязательный

Относительный путь до файла с паролями для SOWA. Путь задается относительно /sowa/profile_storage/custom/ИМЯ_ПРОФИЛЯ/. При выполнении конфигурирования (sowa-config –config) вырезает файл с паролями из данного каталога и вставляет в закрытый раздел совы

Текстовое значение

—

listen

Обязательный

Параметры последовательности listen позволяют «слушать» входящее соединение

Последовательность параметров, описанных в разделе «GostProxy - listen»

—

name

Опциональный

Технологическое название сервиса, используемое для идентификации сервиса в логах транзакций. Значение должно быть уникальным. Обязательно в случае указания optional/event_hook

Строковое значение

—

profile_version

Опциональный

Версия профиля данного сервиса

Текстовое значение

—

description

Опциональный

Строка с описанием сервиса. Значение не является уникальным

Текстовое значение

—

optional

Опциональный

Группа используется для вызова различных таймаутов, ограничения по размеру Xms и Xmx jvm и др.

Параметры, описанные в разделе «GostProxy - optional»

—

Пример id:

- id: 1
- id: my_service_one

Пример passwords_path:

server.gost.truststore.password=testCon2
server.gost.keystore.password=testCon2
client.gost.truststore.password=testCon2
server.rsa.truststore.password=123456
server.rsa.keystore.password=123456
client.rsa.keystore.password=123456
client.rsa.truststore.password=123456

GostProxy - listen#

Параметры последовательности listen типа сервиса GostProxy позволяют «слушать» входящее соединение.

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

proxy

Обязательный

Группа параметров прокси

Параметры, описанные ниже

—

proxy.service_id

Опциональный

Идентификатор сервиса. Обязательно, если server is None и listen/port is not None

Текстовое значение

—

proxy.service_type

Опциональный

Тип сервиса. Обязательно, если service_id is not None

service_main_proxy, service_http_proxy, service_http_kafka_proxy, service_http_mq_proxy, service_gost_proxy

—

proxy.server

Опциональный

Сервер для отправки запросов (значение задается регулярным выражением url). Обязательно, если server is None и listen/port is not None, или если listen/encryption: rsa

Текстовое значение

—

proxy.truststore

Опциональный

Путь к файлу с доверенными сертификатами ЦС в формате PEM

Текстовое значение

—

proxy.keystore

Опциональный

Путь к файлу с секретным ключом в формате PEM

Текстовое значение

—

port

Опциональный

Порт, который будет «слушать» входящее соединение. Значение должно быть уникальным. Обязательно, если encryption: rsa

Целочисленное значение от 0 до 65535

—

encryption

Опциональный

Тип шифрования

gost, rsa

gost

truststore

Опциональный

Путь к файлу с доверенными сертификатами ЦС в формате PEM. Обязательно, если port is not None

Текстовое значение

—

keystore

Опциональный

Путь к файлу с секретным ключом в формате PEM. Обязательно, если port is not None

Текстовое значение

—

host

Опциональный

Хедер Host для отправки запроса на backend

Текстовое значение

hostname из URL параметра proxy/server

alias

Опциональный

Alias для контейнера ключей

Текстовое значение

—

optional

Опциональный

Группа параметров

Параметры, описанные ниже

—

optional.socket_max_concurrent_connections

Опциональный

Максимальное количество одновременных соединений для сокета сервера. Используется, если listen/port is None

Целочисленное значение

10

optional.socket_timeout

Опциональный

Время ожидания сокета сервера. Используется, если listen/port is None

Целочисленное значение

1000

optional.socket_busy_timeout

Опциональный

Время ожидания в случае, если сервер занят. Используется, если listen/port is None

Целочисленное значение

1000

optional.provider (deprecated)

Опциональный

ГОСТ провайдер определяется настройками инсталляции плагина ГОСТ прокси, данный параметр не используется и будет удален в последующих релизах. Используется, если listen/encryption == gost

JCP, JCSP

JCP

GostProxy - optional#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

xmx

Опциональный

Xmx для jvm

Текстовое значение с суффиксом: число (байты), k/K (килобайты), m/M (мегабайты)

64m

xms

Опциональный

Xms для jvm

Текстовое значение с суффиксом: число (байты), k/K (килобайты), m/M (мегабайты)

32m

jvm_options

Опциональный

Список JVM-опций для запуска сервиса. Опции, начинающиеся с Xmx и Xms игнорируются. Каждая опция должна записываться в одну строку без специальных символов. Опции с пробелами автоматически экранируются

Последовательность строковых значений

—

log_level

Опциональный

Переопределение уровня логирования для сервиса

debug, info, notice, warn, error, crit, alert, off

Наследуется от значения в system

headers_xff_policy

Опциональный

Политика обработки XFF (X-FORWARDED-FOR) заголовка: rewrite — перезаписываем заголовок, даже если он существует; save — оставляем заголовки как есть

rewrite, save

save

headers_xrp_policy

Опциональный

Политика обработки XRP (X-REAL-IP) заголовка: rewrite — перезаписываем заголовок, даже если он существует; save — оставляем заголовки как есть

rewrite, save

save

keepalive_timeout

Опциональный

Таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

75s

proxy_connect_timeout

Опциональный

Таймаут для установления соединения с proxy-service

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

60s

proxy_read_timeout

Опциональный

Таймаут при чтении ответа proxy-service

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

60s

proxy_connections_limit

Опциональный

Максимальное количество соединений

Целочисленное значение

50

proxy_host_connections_limit

Опциональный

Максимальное количество соединений для хоста

Целочисленное значение

50

Пример jvm_options:

jvm_options:
  - -Doption.one=some
  - -Dcucumber.tags=@case_one and (@case_two or @deploy)