Поддержка мультисертификатов в SOWA (SNI)#
В Platform V SOWA реализована возможность динамического выбора сертификата для взаимодействия с клиентом в зависимости от параметров запроса, так называемый механизм SNI.
Описание параметров, используемых для настройки использования мультисертификатов, приведено в разделе Базовая конфигурация - optional.
Ниже приведен фрагмент конфигурационного файла, в котором сертификат и ключ для взаимодействия с клиентом будет выбран в зависимости от значения переменной $ssl_server_name (возможно также использовать переменную $remote_addr). Для этого необходимо настроить maps, где мы указываем необходимое нам соответствие и создаем пользовательские переменные $ssl_cert и $ssl_key, которые затем указываем в директивах certificate и certificate_key соответственно:
system:
wrk_count: 1
optional:
maps:
- src_var: $ssl_server_name
dst_var: $ssl_cert
volatile: true
default: cert/demo_server.cer
mapping:
- src_val: demo-server.ru
dst_val: cert/demo_server.cer
- src_val: demo-server2.ru
dst_val: cert/demo_server2.cer
- src_var: $ssl_server_name
dst_var: $ssl_key
volatile: true
default: cert/demo_server.key
mapping:
- src_val: demo-server.ru
dst_val: cert/demo_server.key
- src_val: demo-server2.ru
dst_val: cert/demo_server2.key
service:
service_main_proxy:
- id: main
listen:
- port: 1100
ssl:
certificate: $ssl_cert
certificate_key: $ssl_key