# Компонент для протокола HTTPS

# Описание компонента

После установки компонента в ОС автоматически появится соответствующая служба:

  • на ОС Windows с названием TrueConf Border Controller htpps и id tc_bchttps, путь к исполняемому файлу C:\Program Files\TrueConf\Border Controller\tc_bchttps.exe

  • на ОС Linux: trueconf-bchttps, путь к исполняемому файлу /opt/trueconf/border-controller/bin/tc_bchttps

Настройки для работы компонента для протокола HTTPS указываются в файле конфигурации webproxy.toml как показано далее.

Запуск компонента настраивается так же, как и для рассмотренного ранее компонента для трафика Труконф, но с рядом отличий:

# Настройка сертификатов

Шаг 1

Если на стороне TrueConf Server настроен самоподписанный сертификат, то скачайте его (по ссылке Скачать ca.crt в блоке Самоподписанный сертификат) и добавьте его в доверенные корневые сертификаты на машине с TrueConf Border Controller. Как это сделать, читайте в документации к вашей ОС.

Также можно просто указать параметр skip_verify = true (см. ниже), но это рекомендуем делать только в целях временного тестирования.

Например, на ОС Debian:

  • скопируйте файл сертификата в хранилище сертификатов в каталог usr/local/share/ca-certificates/:
sudo cp ca.crt /usr/local/share/ca-certificates/
  • обновите хранилище сертификатов командой:
sudo update-ca-certificates -v

Если вы получите ошибку что команда не найдена, то установите пакет из репозитория командой:

sudo apt install -y ca-certificates
  • для проверки, что ваша ОС доверяет сертификату, выполните:
openssl verify /usr/local/share/ca-certificates/ca.crt

Шаг 2

На ОС Linux после копирования файлов сертификатов убедитесь, что у них владелец trueconf-border-controller (иначе не будет корректно запускаться служба TrueConf Border Controller). Для проверки выполните команду:

ls -l /usr/local/share/ca-certificates/ca.crt

В выводе должно быть trueconf-border-controller trueconf-border-controller во 2 и 3 столбцах. Если это не так, то выполните команду:

sudo chown trueconf-border-controller:trueconf-border-controller /usr/local/share/ca-certificates/ca.crt

Шаг 3

В панели управления TrueConf Server перейдите в раздел Веб → Настройки и в поле Внешний адрес веб страницы TrueConf Server укажите адрес машины с TrueConf Border Controller.

Шаг 4

Создайте сертификат для машины с TrueConf Border Controller. Если нет коммерческого, можно создать самоподписанный как показано в нашей базе знаний.

Шаг 5

Полученные на шаге 3 сертификат и ключ скопируйте в каталог <path_to_border_controller>\etc\crt\, где <path_to_border_controller> — путь к исполняемому файлу компонента на вашей ОС.

Шаг 6

Сгенерируйте один 128-битный идентификатор GUID, например, с помощью онлайн-сервиса UUID Generator (opens new window).

Переименуйте файлы сертификата и ключа в виде <guid>.crt и <guid>.key где <guid> — полученный выше GUID.

# Настройка файла конфигурации

При установке компонента будет создан файл конфигурации webproxy.toml:

  • на ОС Windows: C:\Program Files\TrueConf\Border Controller\etc\webproxy.toml

  • на ОС Linux: /opt/trueconf/border-controller/etc/webproxy.toml

Файл конфигурации по-умолчанию содержит такие строки:

## [certificate]
## cert_extension = '.crt'
## key_extension = '.key'

[dir]
executable_relative = false
installation = '/opt/trueconf/border-controller'
logs = '/opt/trueconf/border-controller/var/log'

[file]
configname = 'webproxy'

[interfaces]
[interfaces.list]
[interfaces.list.0]
Address = 'localhost:443'
EnableTLS = false
ReadTimeout = 0
## HostWhitelist = []
## HostHeaders = ['Host']
## TLSConfigID = ''
## TargetID = '2f0dbf86-8378-41fc-9c5a-89a43728a0b7'

## [interfaces.list.1]
## Address = '[::]:443'
## EnableTLS = true
## ReadTimeout = 0
## HostWhitelist = []
## HostHeaders = ['Host']
## TLSConfigID = 'd25ceb20-f473-41dc-8db9-37f4dec1a3d1'
## TargetID = 'a824b5cb-c92d-4a52-a5cc-434fecaba6a8'

[proxy]
trust_client_headers = false

## [targets]
## [targets.list]
## [targets.list.2f0dbf86-8378-41fc-9c5a-89a43728a0b7]
## address = 'example.org:80'
## is_secure = false

## [targets.list.a824b5cb-c92d-4a52-a5cc-434fecaba6a8]
## address = 'example.org:443'
## is_secure = true
## skip_verify = true

## [tls]
## [tls.list]
## [tls.list.d25ceb20-f473-41dc-8db9-37f4dec1a3d1]
## CertificateID = 'd25ceb20-f473-41dc-8db9-37f4dec1a3d1'
## CertificateType = 'user-provided'
## DisplayName = 'My TLS configuration'
## ID = 'd25ceb20-f473-41dc-8db9-37f4dec1a3d1'

Для настройки работы компонента для протокола HTTPS укажите следующие значения:

  • в разделе [dir]:

    • installation — путь к исполняемому файлу компонента;

  • в блоках раздела [interfaces] описываются внешние сетевые интерфейсы, на которые приходят новые подключения. Должны содержать уникальный номер (0, 1 и т.д.) в строке [interfaces.list.NUMBER], например [interfaces.list.0]. Параметры, которые могут быть в каждом блоке:

    • Address — адрес и порт для каждого интерфейса в виде address:port, если адреса нет то слушаются все интерфейсы по данному порту (порт обязателен). Префикс (схему), то есть https:// или http:// в адресе указывать не надо;

    • TLSConfigID — имя файлов сертификата и ключа, полученное на шаге 5;

    • TargetID — GUID для идентификации блока настроек HTTPS из раздела [targets];

    • EnableTLS — следует ли использовать TLS для принимаемых подключений, если порт 443 то ставим true;

    • HostHeaders — HTTP-заголовки, из которых TrueConf Border Controller читает адрес, к которому идёт попытка подключения; значение по умолчанию Host. Если список пуст, то всё равно берётся Host. Можно добавить другие заголовки специфичные для окружения, например X-Forwarded-Host или X-Forwarded-Server. Если указано несколько заголовков, то TrueConf Border Controller будет искать в полученном HTTP-запросе каждый из них от первого к последнему и ориентироваться на первый найденный. Из значения отсекается host/port, полученная строка ищется в списке из пункта HostWhitelist;

    • HostWhitelist — список доверенных адресов TrueConf Border Controller, то есть запросы только к таким адресам будут обрабатываться. Запросы на другие адреса будут сразу отбрасываться. Например, если тут указать some.example.com то при вводе в браузере других адресов запросы не пройдёт через TrueConf Border Controller. Если список пуст то допустим проброс пакетов по всем веб-адресам.

[interfaces.list.1] и [interfaces.list.0] могут быть поменяны местами, это не важно. Суть в том что если веб-порт один, то указывается только один блок [interfaces.list.0] или [interfaces.list.1], иначе два блока с разными числами.

  • в разделе [proxy] указываются общие настройки проксирования:

    • trust_client_headers — указывает, следует ли доверять входящим заголовкам, надо указать false если требуется настроить проброс реальных адресов через TrueConf Border Controller в сторону TrueConf Server;

    • X-Forwarded-For — если false, то значение в полученных пакетах HTTP-заголовков X-Forwarded-For будет проигнорировано, а цепочка предшествующих прокси-серверов будет утеряна.

  • для каждого из блоков [targets.list.<guid>] в разделе [targets]:

    • сгенерируйте уникальные GUID и добавьте их в названиях вместо <guid> (эти GUID будут использоваться для связи каждого блока [targets.list.<guid>] с соответствующими параметрами из [interfaces.list.0]);

    • address — IP-адрес или FQDN TrueConf Server и порт для передачи трафика от компонента;

    • is_secure — если для параметра address текущего блока [targets.list.<guid>] был указан HTTPS порт, то значение true, иначе false;

    • skip_verify — указывает, следует ли продолжать работу с недоверенными сертификатами (TLS) в случае настройки для HTTPS;

    • allow_access_by_host — если требуется перенаправлять трафик на сервер видеосвязи по FQDN а не по IP, то надо указать значение true, если же по IP то false;

    • host — если указано значение allow_access_by_host = true то тут требуется указать доменное имя для перенаправления, которое уже будет резолвиться в нужный IP в соответствии с настройками сети.

  • в разделе [tls]:

    • для названия блока [tls.list.<guid>] замените <guid> на значение TLSConfigID (оно же название файла сертификата из шага 5);

    • CertificateID и ID — значение TLSConfigID.

7. Сохраните файл webproxy.toml и запустите компонент.

# Проброс реальных адресов

В общем случае при прохождении веб-трафика через TrueConf Border Controller на его стороне перезаписываются заголовки X-Forwarded-For в целях безопасности. В итоге сервер видеосвязи не знает реальный адрес отправителя запроса. Это может быть неудобно если в зависимости от адреса настроены какие-то параметры, например доступ к панели управления или способы аутентификации пользователей в приложении.

В таких случаях можно убрать перезапись заголовка:

  1. На машине с TrueConf Server откройте файл:
  • на ОС Linux: /opt/trueconf/server/etc/webmanager/extra/httpd-remoteip.conf

  • на ОС Windows: C:\Program Files\TrueConf Server\httpconf\conf\extra\httpd-remoteip.conf

2. Добавьте строку RemoteIPTrustedProxy с адресом машины с TrueConf Border Controller.

3. На стороне TrueConf Border Controller в файле webproxy.toml укажите значение параметра trust_client_headers = false.

В случае, если перед TrueConf Border Controller есть ещё какие-то прокси, нужно переложить ответственность по удалению клиентского заголовка на них, а на TrueConf Border Controller включить trust_client_headers.

# Запуск компонента на ОС Windows

Как и компонент для протокола Труконф запуск службы на Windows можно произвести из оснастки services.msc либо из терминала с помощью утилиты sc.exe. Например:

sc start tc_bchttps

Аналогичным образом компонент добавляется в автозапуск, например:

sc config tc_bchttps start=auto

# Запуск компонента на ОС Linux

Для управления компонентом используйте утилиту systemctl как было показано для trueconf-bc. Например, для запуска выполните:

sudo systemctl start trueconf-bchttps
Обновлено: 24.09.2025