Пaраметр listen#

Настройка поддержки https соединений с SOWA осуществляется в рамках группы ssl. Если группа ssl не задана, то используется обычное http соединение.

Обязательные параметры:

  • certificate

    В значении параметра указывается имя сертификата, который будет использоваться для ssl/tls соединения. Значение параметра не должно содержать указатель на родительский каталог и абсолютный путь.

    certificate: cert_name
    

    Сертификат должен быть помещен в каталог с ресурсами для профиля.

    /sowa/profile_storage/custom/*profile_name*/
    

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • certificate_key

    В значении параметра указывается имя приватного ключа сертификата, который будет использоваться для ssl/tls соединения. Значение параметра не должно содержать указатель на родительский каталог и абсолютный путь.

    certificate_key: private_key_name
    

    Приватный ключ сертификата должен быть помещен в каталог с ресурсами для профиля.

    /sowa/profile_storage/custom/*profile_name*/
    

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

Опциональные параметры:

  • sspi

    Вкл./Откл. режим GOST TLS.

    Тип параметра:

    • true;

    • false.

    По умолчанию:

    sspi: false
    
  • ssl_verify_local_crl_only

    В случае режима GOST определяет, проверять ли статус сертификата локально (иначе проверка осуществляется онлайн).

    Тип параметра: строковое значение.

    • on;

    • off.

    Используется в случае:

    • sspi is not None;

    • sspi == True.

    По умолчанию:

    ssl_verify_local_crl_only: off
    
  • buffer_size

    В случае режима GOST задает длину полезной нагрузки в записи TLS.

    Тип параметра: текстовое значение.

    • min: 1024;

    • max: 16384.

    Используется в случае:

    • sspi is not None;

    • sspi == True.

    По умолчанию:

    buffer_size: 16384
    
  • password_file

    В значении параметра указывается имя файла-пароля с секретными ключами для certificate_key.

    Файл-пароль должен быть помещен в каталог с ресурсами для профиля.

    /sowa/profile_storage/custom/*profile_name*/
    

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • client_certificate

    В значении параметра указывается имя файла сертификатов доверенных CA, используемых для проверки клиентских сертификатов.

    В текущей версии маппится "как есть" на опцию https://nginx.org/ru/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

    Сертификат клиента должен быть помещен в каталог с ресурсами для профиля.

    /sowa/profile_storage/custom/*profile_name*/
    

    Файл клиентского сертификата может содержать в себе несколько сертификатов. Объединение сертификатов можно произвести с помощью команды cat.

    Обязательно в случае:

    • verify_client: "on";

    • verify_client: "optional";

    • verify_client: "optional_no_ca".

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • verify_client

    В значении параметра определяется необходимость проверки клиентских сертификатов на факт их выдачи доверенными CA (параметр client_certificate)

    В текущей версии маппится "как есть" на опцию https://nginx.org/ru/docs/http/ngx_http_ssl_module.html#ssl_verify_client

    Осуществляется запрос клиентского сертификата и проверка, если сертификат был предоставлен в случае использования:

    • verify_client: "on";

    • verify_client: "optional".

    Осуществляется запрос клиентского сертификата. При этом не требуется, чтобы он был подписан доверенным сертификатом CA в случае использования:

    • verify_client: "optional_no_ca".

    Тип параметра:

    • "off";

    • "on";

    • "optional";

    • "optional_no_ca".

    По умолчанию:

    verify_client: "off"
    
  • verify_dn_trusted_path

    В значении параметра включается проверка DN сертификата клиента. Для проверки используется файл. DN сертификата клиента проверяется на соответствие регулярным выражениям из файла. DN файла должен быть представлен в формате openssl (пример - /C=RU/ST=Samara/L=Samara/O=MyCompany/OU=SBT/CN=sbt-opbs-0004, команда для вывода данной информации - openssl x509 -inform PEM -in certname -subject). В случае, если необходима только проверка CN, задавать регулярное выражение вида .*/CN=sbt-opbs-0004.

    В случае невалидности вернется статус-код, указанный в verify_dn_error_code (verify_client_error_code) (400 по умолчанию). Однако, для разделения ошибок, связанных с валидацией сертификатов, внутренний код возврата - 495.

    Файл должен быть помещен в каталог с ресурсами для профиля.

    /sowa/profile_storage/custom/*profile_name*/
    

    Используется в случае:

    • verify_client: "on";

    • verify_client: "optional";

    • verify_client: "optional_no_ca".

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • verify_dn_error_code

    verify_client_error_code

    В значении параметра задается код ответа, который будет возвращен пользователю, если в результате проверки сертификат клиента невалиден.

    Используется в случае:

    • verify_dn_trusted_path is not None.

    Тип параметра: целочисленное значение.

    По умолчанию:

    verify_dn_error_code: 495
    
    verify_client_error_code: 495
    
  • verify_fingerprint_trusted_path

    В значении параметра включается проверка фингерпринтинга. Значение параметра используется для сопоставления фингерпринтинга из файла с фингерпринтингом сертификата клиента.

    В случае невалидности вернется статус-код, указанный в verify_client_error_code (400 по умолчанию). Однако, для разделения ошибок, связанных с валидацией сертификатов, внутренний код возврата - 495.

    Используется в случае:

    • verify_client: "on";

    • verify_client: "optional";

    • verify_client: "optional_no_ca".

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • verify_depth

    В значении параметра устанавливается глубина проверки в цепочке клиентских сертификатов.

    Используется в случае:

    • verify_client: "on";

    • verify_client: "optional";

    • verify_client: "optional_no_ca".

    Тип параметра: целочисленное значение.

    По умолчанию:

    verify_depth: 1
    
  • protocols

    В значении параметра задается список разрешенных протоколов.

    Значения параметра protocols должны быть уникальным.

    Тип параметра:

    • SSLv2;

    • SSLv3;

    • TLSv1;

    • TLSv1.1;

    • TLSv1.2;

    • TLSv1.3.

    По умолчанию для RSA:

    protocols:
      - TLSv1
      - TLSv1.1
      - TLSv1.2
    

    По умолчанию для GOST:

    protocols:
      - TLSv1
    
  • ciphers

    В последовательности ciphers описываются разрешенные и доступные шифры.

    Более подробную информацию с описанием шифров и префиксов можно найти в документации OpenSSL.

    Тип параметра: последовательность параметров и их значения.

    По умолчанию:

    ciphers:
      - value:
        - "HIGH"
      - prefix: "!"
        value:
          - "aNULL"
      - prefix: "!"
        value:
          - "MD5"
    

    Обязательные параметры:

    • value

      Используемое значение.

      Значение должно быть уникальным.

      Тип параметра: возможные значения приведены в разделе "Допустимые значения Ciphers_listen".

      По умолчанию: не имеет значения по умолчанию.

    Опциональные параметры:

    • prefix

      Используемый префикс.

      Тип параметра:

      • "!";

      • "+";

      • "-".

      По умолчанию: не имеет значения по умолчанию.

  • dhparam

    В значении параметра указывается файл с параметрами DHE - шифрования. По умолчанию файл не указан и DHE - шифрование не используется.

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • ciphers_str

    В значении параметра указывается строка с шифрами.

    Используется в случае:

    • ciphers is None.

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • session_timeout

    В значении параметра указывается таймаут сессии ssl/tls.

    Тип параметра: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней);

    • y - год (365 дней).

    По умолчанию:

    session_timeout: 10m
    
  • session_cache

    В значении параметра определяется размер кэша для ssl/tls сессии.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значение по умолчанию оценивается автоматически.

    Обязательные параметры:

    • type

      В значении параметра определяется тип размера кэша.

      Значение параметра type должно быть уникальным.

      Тип параметра: строковое значение.

      • off - жесткое запрещение использования кэша сессий: nginx явно сообщает клиенту, что сессии не могут использоваться повторно;

      • none - мягкое запрещение использования кэша сессий: nginx сообщает клиенту, что сессии могут использоваться повторно, но на самом деле не хранит параметры сессии в кэше;

      • builtin - встроенный в OpenSSL кэш, используется в рамках только одного рабочего процесса. Размер кэша задается в сессиях. Если размер не задан, то он равен 20480 сессиям. Использование встроенного кэша может вести к фрагментации памяти;

      • shared - кэш, разделяемый между всеми рабочими процессами. Размер кэша задается в байтах, в 1 мегабайт может поместиться около 4000 сессий. У каждого разделяемого кэша должно быть произвольное название. Кэш с одинаковым названием может использоваться в нескольких виртуальных серверах.

      По умолчанию: не имеет значения по умолчанию.

    • name

      В значении параметра указывается имя размера.

      Используется в случае:

      • type: shared.

      Тип параметра: строковое значение.

      По умолчанию: не имеет значения по умолчанию.

    • size

      В значении параметра указывается величина размера.

      Используется в случае:

      • type: builtin;

      • type: shared.

      Тип параметра: текстовое значение с суффиксом:

      • число без суффикса - байты;

      • k / K - килобайты;

      • m / M - мегабайты.

      По умолчанию: не имеет значения по умолчанию.

  • allow_http2

    Разрешает прием соединений по протоколу http2.

    Тип параметра:

    • true;

    • false.

    По умолчанию: false.

  • http2_only

    Включение ограничения приема входящих соединений только по протоколу http2.

    Тип параметра:

    • on;

    • off.

    По умолчанию: off.

Дoпустимые значения Ciphers_listen#

Допустимые значения полностью копируют cipher проекта OpenSSL. Возможные значения приведены ниже:

'@STRENGTH'

'3DES'

'aDH'

'ADH'

'aDSS'

'aECDH'

'AECDH'

'aECDSA'

'AES'

'AES128'

'AES256'

'AESGCM'

'aFZA'

'aGOST'

'aGOST01'

'aGOST94'

'ALL'

'aNULL'

'aRSA'

'CAMELLIA'

'CAMELLIA128'

'CAMELLIA256'

'COMPLEMENTOFALL'

'COMPLEMENTOFDEFAULT'

'DEFAULT'

'DES'

'DH'

'DHE'

'DSS'

'ECDH'

'ECDHE'

'ECDSA'

'EDH'

'EECDH'

'eFZA'

'eNULL'

'EXP'

'EXPORT'

'EXPORT40'

'EXPORT56'

'FZA'

'GOST89MAC'

'GOST94'

'HIGH'

'IDEA'

'kDH'

'kDHd'

'kDHE'

'kDHr'

'kECDH'

'kECDHE'

'kECDHe'

'kECDHr'

'kEDH'

'kEECDH'

'kFZA'

'kGOST'

'kRSA'

'LOW'

'MD5'

'MEDIUM'

'NULL'

'NULL-SHA256'

'PSK'

'RC2'

'RC4'

'RSA'

'SEED'

'SHA'

'SHA1'

'SHA256'

'SHA384'

'SSLv2'

'SSLv3'

'SUITEB128'

'SUITEB128ONLY'

'SUITEB192'

'TLSv1'

'TLSv1.2'