Пaраметр upstream_ssl#

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

  • ssl_use

    Вкл./Откл. поддержка ssl/tls соединения для взаимодействия с upstream'ом.

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

    • true;

    • false.

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

    ssl_use: false
    
  • 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
    
  • ssl_session_reuse

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

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

    • ssl_use is not None.

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

    • on;

    • off.

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

    ssl_session_reuse: on
    
  • ssl_protocols

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

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

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

    • ssl_use is not None.

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

    • SSLv2;

    • SSLv3;

    • TLSv1;

    • TLSv1.1;

    • TLSv1.2;

    • TLSv1.3.

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

    ssl_protocols:
      - TLSv1
      - TLSv1.1
      - TLSv1.2
    
  • ssl_ciphers

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

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

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

    • ssl_use is not None;

    • ssl_ciphers_str is None.

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

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

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

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

    • value

      В значении параметра определяется используемый шифр.

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

      Тип параметра: список разрешенных значений, указанных в конфигураторе, приведен в разделе "Допустимые значения Ciphers_upstream_ssl".

      По умолчанию: не имеет значения по умолчанию. Опциональные параметры:

    • prefix

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

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

      • "!";

      • "+";

      • "-".

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

  • ssl_ciphers_str

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

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

    • ssl_use is not None;

    • ssl_ciphers is None.

    ssl_ciphers_str: HIGH:!aNULL:NULL-SHA256
    

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

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

  • ssl_name

    В значении параметра можно переопределить имя сервера, используемое для проверки сертификата проксируемого сервера https и его передачи через SNI при установлении соединения с проксируемым сервером https.

    Здесь необходимо указать одно из следующих значений:

    • любое одно значение из SAN сертификата бэкенда;

    • в случае, если SAN у сертификата бэкенда не объявлено, указываем CN сертификата бэкенда.

    Существует возможность использовать внутренние переменные:

    • $upstream_server_name - имя сервера из конфигурационного файла "as is".

    • $upstream_server_host - имя хоста (без порта) из конфигурационного файла.

    ssl_name: $upstream_server_host
    

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

    • ssl_use is not None;

    ssl_verify: on
    

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

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

  • ssl_name_verify_off

    Вкл./Откл. проверки ssl_name. Проверяется сертификат бэкенда по критериям, указанным в параметре ssl_name (совпадение SAN или CN сертификата с значением, указанным в конфигурационном файле). Верификацию ssl_name следует отключать в случае, если бэкенды работают с разными сертификатами и в них указаны разные SAN/CN (т.к. в таком случае непонятно какое значение указывать в ssl_name).

    В случае, если верификация отключена, для двустороннего ssl/tls обязательно использовать ssl_dn_verify_trusted_path. Если верификация не отключена, использование ssl_dn_verify_trusted_path необязательно.

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

    • ssl_use is not None;

    ssl_verify: on
    

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

    • on;

    • off.

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

    ssl_name_verify_off: off
    
  • ssl_name_verify_off

    Вкл./Откл. проверки ssl_name. Проверяется сертификат бэкенда по критериям, указанным в параметре ssl_name (совпадение SAN или CN сертификата с значением, указанным в конфигурационном файле). Верификацию ssl_name следует отключать в случае, если бэкенды работают с разными сертификатами и в них указаны разные SAN/CN (т.к. в таком случае непонятно какое значение указывать в ssl_name).

    В случае, если верификация отключена, для двустороннего ssl обязательно использовать ssl_dn_verify_trusted_path. Если верификация не отключена, использование ssl_dn_verify_trusted_path необязательно.

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

    • ssl_use is not None;

    ssl_verify: on
    

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

    • on;

    • off.

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

    ssl_name_verify_off: off
    
  • ssl_server_name

    Вкл./Откл. передачу имени сервера через расширение TLS Server Name Indication (SNI, RFC 6066) при установлении соединения с проксируемым сервером https.

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

    • ssl_use is not None.

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

    • on;

    • off.

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

    ssl_server_name: off
    
  • ssl_verify

    Вкл./Откл. проверку сертификата проксируемого сервера https.

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

    • ssl_use is not None.

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

    • on;

    • off.

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

    ssl_verify: off
    
  • ssl_verify_depth

    В значении параметра устанавливается глубина проверки в цепочке сертификатов для проксируемого сервера https. Минимальное значение - "0".

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

    • ssl_use is not None.

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

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

    ssl_verify_depth: 1
    
  • ssl_verify_depth

    В значении параметра устанавливается глубина проверки в цепочке сертификатов для проксируемого сервера https. Минимальное значение - "0".

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

    • ssl_use is not None.

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

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

    ssl_verify_depth: 1
    
  • ssl_trusted_certificate

    В значении параметра задается файл с доверенными сертификатами ЦС в формате PEM, который используется для проверки сертификата проксируемого сервера https.

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

    • ssl_use is not None;

    • ssl_verify is not None.

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

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

  • ssl_dn_verify_trusted_path

    В значении параметра задается файл с разрешенными регулярными выражениями для верификации DN сертификата backend'a/upstream'a. Все регулярные выражения DN из этого файла сопоставляются с DN сертификата backend'a/upstream'a.

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

    • ssl_use is not None;

    ssl_verify: on
    

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

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

  • (2.1) ssl_fingerprint_verify_trusted_path

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

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

    • ssl_use is not None;

    ssl_verify: on
    

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

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

  • ssl_crl

    В значении параметра указывается файл с отозванными сертификатами (CRL) в формате PEM, который используется для проверки сертификата проксируемого сервера https.

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

    • ssl_use is not None.

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

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

  • ssl_certificate

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

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

    • ssl_use is not None.

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

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

  • ssl_certificate_key

    В значении параметра указывается файл с секретным ключом в формате PEM (секретный ключ от клиентского сертификата SOWA), который используется для аутентификации на проксируемом сервере https.

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

    • ssl_use is not None.

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

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

  • ssl_password_file

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

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

    • ssl_use is not None.

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

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

Пример:

ssl_options:
  ssl_use: true
  ssl_protocols:
    - TLSv1.2
  ssl_ciphers:
    - value:
      - "HIGH"
    - prefix: "!"
      value:
      - "aNULL"
    - value:
      - "NULL-SHA256"
  ssl_certificate: server_dev.cer
  ssl_certificate_key: server_dev.key
  ssl_name: 'test-0005.example.ru'
  ssl_trusted_certificate: ca_dev.cer
  ssl_verify: 'on'
  ssl_verify_depth: 2
  ssl_dn_verify_trusted_path: verify_dn_trusted_path_one
  ssl_fingerprint_verify_trusted_path: fingerprints.data