Поддержка мультисертификатов в 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