Инструкция по настройке SSL Offload

Аннотация

В инструкции приведена последовательность действий по настройке функционала SSL Offload в Termidesk Connect.

В качестве примера будут выполняться следующие шаги:

  • шаг 1. Добавление Wildcard SSL-сертификата;

  • шаг 2. Добавление Серверного SSL-Профиля;

  • шаг 3. Добавление Виртуального Сервера;

  • шаг 4. Просмотр SSL-подключения на Виртуальном Сервере;

  • шаг 5. Добавление Сценария перенаправления HTTP-запроса на HTTPS;

  • шаг 6. Добавление Сценария перенаправления HTTP-запроса на HTTPS к Виртуальному Серверу;

  • шаг 7. Просмотр перенаправления запроса по протоколу HTTP на HTTPS;

  • шаг 8. Добавление Группы Реальных Серверов;

  • шаг 9. Добавление Проверки;

  • шаг 10. Добавление Проверки к Группе Реальных Серверов;

  • шаг 11. Добавление Сервера Балансировки;

  • шаг 12. Добавление Сценария перенаправления HTTP-запроса на Сервер Балансировки;

  • шаг 13. Добавление Сценария перенаправления HTTP-запроса на Сервер Балансировки к Виртуальному Серверу;

  • шаг 14. Просмотр балансировки нагрузки с использованием SSL Offload;

  • шаг 15. Добавление SSL-сертификата;

  • шаг 16. Добавление SNI к Серверному SSL-Профилю;

  • шаг 17. Просмотр балансировки нагрузки с использованием SSL Offload по SNI.

Шаг 1. Добавление Wildcard SSL-сертификата

Для генерации самоподписанного сертификата, который будет использоваться в конфигурации Termidesk Connect, выполнить:

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout howTo.key -out howTo.crt -subj "/C=RU/ST=UV/L=MSK/O=Example Inc./OU=Web Security/CN=*.howto.ru"

Generating a 2048 bit RSA private key
..........................................................................+++++
...............+++++
writing new private key to 'howTo.key'
-----
Данный сертификат (Wildcard-сертификат) сгенерирован для доменного имени howto. Сертификат подходит для любого домена третьего уровня, принадлежащего howto.ru, длина ключа составляет 2 кБ. В данной инструкции используются настройки компонентов Инструкции по настройке HTTP-балансировки, так как все компоненты идентичны.

Для входа в Termidesk Connect ввести учетные данные администратора, для этого заполнить поля «Username» и «Password», далее нажать кнопку [Login] (см. Авторизация Termidesk Connect).

image
Рисунок 1. Авторизация Termidesk Connect

Далее откроется веб-интерфейс Termidesk Connect, в левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – TLS – Файлы» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 2. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Файлы TLS», для добавления файла сертификата нажать кнопку [Загрузить] и выбрать ранее сгенерированный файл howTo.crt (см. Загрузка файла сертификата).

image
Рисунок 3. Загрузка файла сертификата

Для добавления файла ключа нажать кнопку [Загрузить] и выбрать ранее сгенерированный файл howTo.key (см. Загрузка файла ключа).

image
Рисунок 4. Загрузка файла ключа
Файлы howTo.crt и howTo.key используются при настройке функционала SSL Offload.

В правой части веб-интерфейса появятся строки с добавленными файлами в списке (см. Список файлов).

image
Рисунок 5. Список файлов

Шаг 2. Добавление Серверного SSL-Профиля

В левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – TLS – Профили» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 6. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Профили», для добавления SSL-Профиля нажать кнопку [Добавить] (см. Добавление SSL-Профиля).

Функционал SSL Offload настраивается через SSL-Профили. SSL-Профили разделяются на Серверный и Клиентский. Тип SSL-Профиля определяется со стороны Termidesk Connect:

  • для пользователей Termidesk Connect является сервером, т.е. настраивается Серверный SSL-Профиль;

  • для Реальных Серверов Termidesk Connect является клиентом, т.е. настраивается Клиентский SSL-Профиль.

В данной инструкции Серверный SSL-Профиль настраивается для привязки к Виртуальному Серверу.

image
Рисунок 7. Добавление SSL-Профиля

В открывшемся окне «Добавление профиля» указать значение в поле «Имя», в раскрывающемся списке «Тип» выбрать «Серверный». В области «Конфигурация по-умолчанию» нажать кнопку [Создать] (см. Конфигурация по умолчанию).

Для настройки соединения Termidesk Connect используется конфигурация по умолчанию и конфигурация SNI. В данном шаге настраивается конфигурация по умолчанию, т.е. конфигурация будет применяться для любых TLS-запросов, независимо от значения SNI в пакете TLS Hello.
image
Рисунок 8. Конфигурация по умолчанию

В раскрывающемся списке «Файл сертификата» выбрать ранее загруженный файл «howTo.crt», в раскрывающемся списке «Файл ключа» выбрать ранее загруженный файл «howTo.key» (см. Настройка конфигурации по умолчанию).

image
Рисунок 9. Настройка конфигурации по умолчанию

В области «Наборы криптографических алгоритмов» в списке «Доступные элементы» выбрать значения «ECDHE-ECDSA-CHACHA20-POLY1305» и «ECDHE-RSA-AES128-GCM-SHA256», далее нажать кнопку [Применить] (см. Применение настроек Профиля).

image
Рисунок 10. Применение настроек Профиля

В правой части веб-интерфейса появится строка с добавленным SSL-Профилем в списке (см. Список SSL-Профилей).

image
Рисунок 11. Список SSL-Профилей

Шаг 3. Добавление Виртуального Сервера

В левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – Виртуальные Серверы» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 12. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Виртуальные Серверы», для добавления Виртуального Сервера нажать кнопку [Добавить] (см. Добавление Виртуального Сервера).

image
Рисунок 13. Добавление Виртуального Сервера

В открывшемся окне «Добавление Виртуального Сервера» указать значения в полях «Имя», «IP Адрес» и «Порт». В раскрывающемся списке «Тип» выбрать «HTTP», в раскрывающемся списке «Серверный TLS Профиль» выбрать ранее созданный Профиль «frontend-profile». Далее в области «Правила» нажать кнопку [Добавить] (см. Настройка Виртуального Сервера).

Адрес порта может быть любым.
image
Рисунок 14. Настройка Виртуального Сервера

В открывшемся окне «Добавление правила» указать значение в поле «Приоритет», в раскрывающемся списке «Сценарий» выбрать ранее созданный Сценарий «rgb.lua». Далее нажать кнопку [Применить] (см. Добавление правила).

image
Рисунок 15. Добавление правила

В окне «Добавление Виртуального Сервера» нажать кнопку [Применить] (см. Применение настроек Виртуального Сервера).

image
Рисунок 16. Применение настроек Виртуального Сервера

В правой части веб-интерфейса появится строка с добавленным Виртуальным Сервером в списке, который находится в состоянии «В работе» (см. Список Виртуальных Серверов).

image
Рисунок 17. Список Виртуальных Серверов

Шаг 4. Просмотр SSL-подключения на Виртуальном Сервере

В адресной строке браузера ввести адрес Сервера Балансировки «10.101.251.195». Далее отобразится веб-страница с адресом «10.101.251.195/red» согласно алгоритму балансировки. На веб-странице отразится информация о незащищенном подключении. Для просмотра информации нажать кнопку [Подробнее] (см. Веб-страница).

image
Рисунок 18. Веб-страница

Для просмотра самоподписанного сертификата перейти по ссылке «просмотреть сертификат» (см. Просмотр сертификата).

image
Рисунок 19. Просмотр сертификата

Отобразится информация о ранее созданном Wildcard-сертификате *.howto.ru. Далее нажать кнопку [OK] (см. Самоподписанный сертификат).

image
Рисунок 20. Самоподписанный сертификат

Для просмотра содержимого веб-страницы перейти по ссылке «посетить этот сайт» (см. Переход на веб-страницу).

image
Рисунок 21. Переход на веб-страницу

В открывшемся окне с предупреждением о незащищенном соединении нажать кнопку [Посетить сайт] (см. Окно подтверждения перехода).

image
Рисунок 22. Окно подтверждения перехода

Отобразится содержимое веб-страницы с адресом «10.101.251.195/red» (см. Просмотр веб-страницы).

image
Рисунок 23. Просмотр веб-страницы

Шаг 5. Добавление Сценария перенаправления HTTP-запроса на HTTPS

В левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – Сценарии» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 24. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Сценарии». Для добавления Сценария на вкладке «Сценарии Балансировки» нажать кнопку [Добавить] (см. Добавление Сценария).

image
Рисунок 25. Добавление Сценария

В открывшемся окне «Создание файла» указать имя файла в поле «Имя» (см. Ввод имени файла Сценария).

image
Рисунок 26. Ввод имени файла Сценария

Для добавления содержимого файла Сценария в поле «Содержимое файла» ввести:

client.respond.status = 302
client.respond.header["Location"] = "https://" .. client.http_req.host .. client.http_req.path
client.respond.header["Connection"] = "close"
client.action = "respond"

В файле формата .lua используется действие respond:

Параметры действия Описание

client.respond.status = 302

Код ответа 302 – перенаправление

client.respond.header["Location"] = "https://" .. client.http_req.host .. client.http_req.path

В ответе 302 должен присутствовать заголовок Location для указания перенаправления запросов браузера. В заголовке Location должны присутствовать имя узла host и путь path, аналогичные значениям в первоначальном запросе, но с заголовком https://

client.respond.header["Connection"] = "close"

Закрытие соединения на HTTP-сервере

Для создания файла Сценария нажать кнопку [Применить] (см. Создание файла Сценария).

image
Рисунок 27. Создание файла Сценария

В правой части веб-интерфейса появится строка с добавленным файлом Сценария в списке (см. Список Сценариев).

image
Рисунок 28. Список Сценариев

Шаг 6. Добавление Сценария перенаправления HTTP-запроса на HTTPS к Виртуальному Серверу

Для добавления Сценария к Виртуальному Серверу в левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – Виртуальные Серверы» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 29. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Виртуальные Серверы». Для изменения настроек выбрать Виртуальный Сервер «vshttp01» и нажать кнопку [Изменить] (см. Изменение настроек Виртуального Сервера).

image
Рисунок 30. Изменение настроек Виртуального Сервера

В открывшемся окне «Изменение Виртуального Сервера» в области «Правила» нажать кнопку [Добавить] (см. Добавление правила).

image
Рисунок 31. Добавление правила

В открывшемся окне «Добавление правила» указать значения в полях «Приоритет» и «Сценарий». Далее нажать кнопку [Применить] (см. Добавление Сценария к Виртуальному Серверу).

image
Рисунок 32. Добавление Сценария к Виртуальному Серверу

В окне «Изменение Виртуального Сервера» нажать кнопку [Применить] (см. Применение настроек Виртуального Сервера).

Запрос пользователя придет на порт 80 Виртуального Сервера vshttp01 и будет перенаправлен на порт 443. Соответственно, запрос перенаправится на Виртуальный Сервер vsSSLoffload с настроенным SSL-Профилем, далее произойдет SSL-терминация.
image
Рисунок 33. Применение настроек Виртуального Сервера

Шаг 7. Просмотр перенаправления запроса по протоколу HTTP на HTTPS

Для отправки HTTP-запроса выполнить команду curl:

curl -vv http://10.101.251.195/red

В выводе команды curl отобразится, что выполнено перенаправление HTTP на HTTPS в соответствии со Сценарием redirecthttptohttps.lua:

*   Trying 10.101.251.195:80...
* Connected to 10.101.251.195 (10.101.251.195) port 80
> GET /red HTTP/1.1
> Host: 10.101.251.195
> User-Agent: curl/8.7.1
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 302 Found
< Location: https://10.101.251.195/red
< Connection: close
<
* Closing connection

Далее для команды curl задать дополнительные параметры -L (выполнять перенаправление) и -k (доверять самоподписанному сертификату), для этого выполнить:

curl -vv -L -k http://10.101.251.195/red

В выводе отобразится, что:

  • запрос по протоколу HTTP перенаправлен на HTTPS с тем же IP-адресом host и путем path, что заданы в Сценарии redirecthttptohttps.lua;

  • выполнено подключение по протоколу TLS 1.2, который задан в настройках Серверно SSL-Профиля frontend-profile;

  • применен Wildcard SSL-сертификат howTo.crt;

  • выполнено перенаправление на Реальный Сервер Красный.

Вывод команды curl:

*   Trying 10.101.251.195:80...
* Connected to 10.101.251.195 (10.101.251.195) port 80
> GET /red HTTP/1.1
> Host: 10.101.251.195
> User-Agent: curl/8.7.1
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 302 Found
< Location: https://10.101.251.195/red
< Connection: close
<
* Closing connection
* Clear auth, redirects to port from 80 to 443
* Issue another request to this URL: 'https://10.101.251.195/red'
*   Trying 10.101.251.195:443...
* Connected to 10.101.251.195 (10.101.251.195) port 443
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* (304) (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-SHA384 / [blank] / UNDEF
* ALPN: server did not agree on a protocol. Uses default.
* Server certificate:
*  subject: C=RU; ST=UV; L=MSK; O=Example Inc.; OU=Web Security; CN=*.howto.ru
*  start date: Aug 6 16:52:51 2025 GMT
*  expire date: Aug 6 16:52:51 2026 GMT
*  issuer: C=RU; ST=UV; L=MSK; O=Example Inc.; OU=Web Security; CN=*.howto.ru
*  SSL certificate verify result: self signed certificate (18), continuing anyway.
* using HTTP/1.x
> GET /red HTTP/1.1
> Host: 10.101.251.195
> User-Agent: curl/8.7.1
> Accept: */*
>
* Request completely sent off
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Server: BaseHTTP/0.6 Python/3.8.17
< Date: Wed, 06 Aug 2025 17:02:52 GMT
< Content-type: text/html
<
<html>
<meta charset="utf-8">
<body>
<title>Красный</title>
<h1 style="color:rgb(229, 98, 98)"> Красный Сайт</h1>

</body>
</html>
* Closing connection

Шаг 8. Добавление Группы Реальных Серверов

В левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – Группы Реальных Серверов» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 34. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Группы Реальных Серверов». Для добавления Группы Реальных Серверов нажать кнопку [Добавить] (см. Добавление Группы Реальных Серверов).

На данном шаге добавляется Группа Реальных Серверов с одним Реальным Сервером, на котором уже преднастроен TLS.
image
Рисунок 35. Добавление Группы Реальных Серверов

В открывшемся окне «Добавление Группы Серверов» указать название в поле «Имя». Далее в области «Список Реальных Серверов» нажать кнопку [Добавить] и в раскрывающемся списке выбрать «IP» (см. Добавление Реального Сервера).

image
Рисунок 36. Добавление Реального Сервера

В открывшемся окне «Добавление Реального Сервера» указать значения в полях «IP» и «Порт». Далее нажать кнопку [Применить] (см. Применение настроек Реального Сервера).

image
Рисунок 37. Применение настроек Реального Сервера

В раскрывающемся списке «Используемая Проверка» выбрать «http-howto» и нажать кнопку [Применить] (см. Список Реальных Серверов).

image
Рисунок 38. Список Реальных Серверов

В правой части веб-интерфейса появится строка с добавленной Группой Реальных Серверов в списке, которая находится в состоянии «Отключен» (см. Список Групп Реальных Серверов).

Группа Реальных Серверов sslRS находится в состоянии «Отключен», потому что не указаны параметры подключения к Реальному Серверу по протоколу TLS.
image
Рисунок 39. Список Групп Реальных Серверов

Шаг 9. Добавление Проверки

В левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – Проверки» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 40. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Проверки», для добавления Проверки нажать кнопку [Добавить] (см. Добавление Проверки).

image
Рисунок 41. Добавление Проверки

В открывшемся окне «Добавление Проверки» указать значения в полях «Имя», «Интервал, с», «Время ожидания ответа, с». В раскрывающемся списке «Тип» выбрать «HTTP», в раскрывающемся списке «Метод» выбрать «GET».

Указать значение в поле «URI», далее активировать параметр «TLS» и в раскрывающемся списке «TLS Профиль» выбрать Клиентский SSL-Профиль «backend-default». Нажать кнопку [Применить] (см. Применение настроек Проверки).

image
Рисунок 42. Применение настроек Проверки

В правой части веб-интерфейса появится строка с добавленной Проверкой в списке (см. Список Проверок).

image
Рисунок 43. Список Проверок

Шаг 10. Добавление Проверки к Группе Реальных Серверов

В левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – Группы Реальных Серверов» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 44. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Группы Реальных Серверов». Для изменения настроек Группы Реальных Серверов выбрать «sslRS» и нажать кнопку [Изменить] (см. Изменение Группы Реальных Серверов).

image
Рисунок 45. Изменение Группы Реальных Серверов

В открывшемся окне «Изменение Группы Серверов» в раскрывающемся списке «Используемая Проверка» выбрать «ssl-howto» и нажать кнопку [Применить] (см. Применение настроек Группы Реальных Серверов).

image
Рисунок 46. Применение настроек Группы Реальных Серверов

Группа Реальных Серверов «sslRS» перейдет в состояние «В работе» (см. Список Групп Реальных Серверов).

image
Рисунок 47. Список Групп Реальных Серверов

Шаг 11. Добавление Сервера Балансировки

В левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – Серверы Балансировки» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 48. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Серверы Балансировки». Для добавления Сервера Балансировки нажать кнопку [Добавить] (см. Добавление Сервера Балансировки).

image
Рисунок 49. Добавление Сервера Балансировки

В открывшемся окне «Добавление Сервера Балансировки» указать название в поле «Имя», в раскрывающемся списке «Тип» выбрать «HTTP», в раскрывающемся списке «Группа РС» выбрать «sslRS», в раскрывающемся списке «Клиентский TLS Профиль» выбрать Клиентский SSL-Профиль «backend-default». Далее нажать кнопку [Применить] (см. Применение настроек Сервера Балансировки»).

Без привязки Клиентского SSL-Профиля к Серверу Балансировки не будут осуществляться запросы Termidesk Connect по протоколу HTTPS.
image
Рисунок 50. Применение настроек Сервера Балансировки»

В правой части веб-интерфейса появится строка с добавленным Сервером Балансировки в списке, который находится в состоянии «В работе» (см. Список Серверов Балансировки).

image
Рисунок 51. Список Серверов Балансировки

Шаг 12. Добавление Сценария перенаправления HTTP-запроса на Сервер Балансировки

В левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – Сценарии» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 52. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Сценарии». Для добавления Сценария на вкладке «Сценарии Балансировки» нажать кнопку [Добавить] (см. Добавление Сценария).

image
Рисунок 53. Добавление Сценария

В открывшемся окне «Создание файла» указать имя файла в поле «Имя» (см. Ввод имени файла Сценария).

image
Рисунок 54. Ввод имени файла Сценария

Для добавления содержимого файла Сценария в поле «Содержимое файла» ввести:

if client.http_req.host == "a.howto.ru" then
    client.bs = "sslLB"
    client.action = "bs"
end

Файл формата .lua читается, как пишется. Пример:

Поле Описание

if client.http_req.host == "a.howto.ru"

Если заголовок host HTTP-запроса соответствует a.howto.ru

client.bs = "sslLB"

client.action = "bs"

Перенаправить HTTP-запрос на Сервер Балансировки sslLB

Для создания файла Сценария нажать кнопку [Применить] (см. Создание файла Сценария).

image
Рисунок 55. Создание файла Сценария

В правой части веб-интерфейса появится строка с добавленным файлом Сценария в списке (см. Список Сценариев).

image
Рисунок 56. Список Сценариев

Шаг 13. Добавление Сценария перенаправления HTTP-запроса на Сервер Балансировки к Виртуальному Серверу

Для добавления Сценария к Виртуальному Серверу в левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – Виртуальные Серверы» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 57. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Виртуальные Серверы». Для изменения настроек выбрать Виртуальный Сервер «vsSSLoffload» и нажать кнопку [Изменить] (см. Изменение настроек Виртуального Сервера).

image
Рисунок 58. Изменение настроек Виртуального Сервера

В открывшемся окне «Изменение Виртуального Сервера» в области «Правила» нажать кнопку [Добавить] (см. Добавление правила).

image
Рисунок 59. Добавление правила

В открывшемся окне «Добавление правила» указать значения в полях «Приоритет» и «Сценарий». Далее нажать кнопку [Применить] (см. Добавление Сценария к Виртуальному Серверу).

image
Рисунок 60. Добавление Сценария к Виртуальному Серверу

В окне «Изменение Виртуального Сервера» нажать кнопку [Применить] (см. Применение настроек Виртуального Сервера).

image
Рисунок 61. Применение настроек Виртуального Сервера

Шаг 14. Просмотр балансировки нагрузки с использованием SSL Offload

Для отправки HTTP-запроса выполнить команду curl:

curl -v -k https://a.howto.ru/ssl

В выводе отобразится, что при переходе на a.Howto.Ru:

  • HTTP-запрос обработан Серверным SSL-Профилем frontend-profile, привязанным к Виртуальному Серверу vsSSLoffload;

  • выполнено перенаправление HTTP-запроса на Реальный Сервер 10.1.0.10, на котором преднастроен SSL Offload.

А так же Реальный Сервер выведет параметры подключения между Termidesk Connect и самим Реальным Сервером.

Фрагмент вывода команды curl:

...
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-SHA384 / [blank] / UNDEF
* ALPN: server did not agree on a protocol. Uses default.
* Server certificate:
*  subject: C=RU; ST=UV; L=MSK; O=Example Inc.; OU=Web Security; CN=*.howto.ru
*  start date: Aug 6 16:52:51 2025 GMT
*  expire date: Aug 6 16:52:51 2026 GMT
*  issuer: C=RU; ST=UV; L=MSK; O=Example Inc.; OU=Web Security; CN=*.howto.ru
*  SSL certificate verify result: self signed certificate (18), continuing anyway.
* using HTTP/1.x
> GET /ss1 HTTP/1.1
> Host: a.howto.ru
> User-Agent: curl/8.7.1
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 200 OK
< Server: nginx/1.24.0 (Ubuntu)
< Date: Wed, 06 Aug 2025 17:15:20 GMT
< Content-Type: text/html
< Content-Length: 596
< Connection: keep-alive
<
<html><body>SERVER___01<br />src_ip-port: 10.1.0.194: 59820<br /> connect-to: 10.1.0.10<br /> http_req: GET /ss1 HTTP/1.1 <br /> UsAg: curl/8.7.1<br />ssl_reuse: .
* Connection #0 to host a.howto.ru left intact<br /> Used Cipher: ECDHE-RSA-AES256-SHA384<br />ssl-protocol: TLSv1.2 <br /> Supported by client ssl-ciphers: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384:TLS_EMPTY_RENEGOTIATION_INFO_SCSV </body></html>#

Шаг 15. Добавление SSL-сертификата

Для генерации сертификата на доменное имя a.howto.ru выполнить:

Для генерации сертификата используется определенное доменное имя с целью настройки параметров SNI для Серверного SSL-Профиля.
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout aht.key -out aht.crt -subj "/C=RU/ST=UV/L=MSK/O=Example Inc./OU=Web /CN=a.howto.ru"

Generating a 2048 bit RSA private key
.............+++++
..........................................................
.......................+++++
writing new private key to 'aht.key'
-----

Далее в левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – TLS – Файлы» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 62. Веб-интерфейс Termidesk Connect

В правой части веб-интерфейса отобразится раздел «Файлы TLS», для добавления файла ключа нажать кнопку [Загрузить] и выбрать ранее сгенерированный файл «aht.key» (см. Загрузка файла ключа).

image
Рисунок 63. Загрузка файла ключа

Для добавления файла сертификата нажать кнопку [Загрузить] и выбрать ранее сгенерированный файл aht.crt (см. Загрузка файла сертификата).

image
Рисунок 64. Загрузка файла сертификата

В правой части веб-интерфейса появятся строки с добавленными файлами в списке (см. Список файлов).

image
Рисунок 65. Список файлов

Шаг 16. Добавление SNI к Серверному SSL-Профилю

В левой части веб-интерфейса перейти в раздел «Настройки – Управление трафиком – TLS – Профили» (см. Веб-интерфейс Termidesk Connect).

image
Рисунок 66. Веб-интерфейс Termidesk Connect

Далее в правой части веб-интерфейса отобразится раздел «Профили», для изменения настроек Серверного Профиля выбрать «frontend-profile» и нажать кнопку [Изменить] (см. Профили).

image
Рисунок 67. Профили

В открывшемся окне «Изменение профиля» в области «Сервера» нажать кнопку [Добавить] (см. Изменение настроек Профиля).

image
Рисунок 68. Изменение настроек Профиля
В поле «SNI» указывается значение SNI из TLS Hello.

В открывшемся окне «Добавление правил SNI» указать значение в поле «SNI». В раскрывающемся списке «Файл сертификата» выбрать значение «aht.crt», в раскрывающемся списке «Файл ключа» выбрать значение «aht.key». В области «Поддерживаемые версии TLS (SSL)» в списке «Доступные элементы» отменить выбор «tls-v12» и выбрать «tls-v13».

В области «Наборы криптографических алгоритмов» в списке «Выбранные элементы» нажать кнопку [Очистить], в списке «Доступные элементы» выбрать «TLS-CHACHA20-POLY1305-SHA256». Далее нажать кнопку [Применить] (см. Добавление правил SNI).

image
Рисунок 69. Добавление правил SNI

Далее в окне «Изменение профиля» нажать кнопку [Применить] (см. Применение настроек Профиля).

image
Рисунок 70. Применение настроек Профиля

Шаг 17. Просмотр балансировки нагрузки с использованием SSL Offload по SNI

Для отправки HTTP-запроса выполнить команду curl:

curl -v -k https://a.howto.ru/ssl

В выводе отобразится, что при переходе на a.Howto.Ru:

  • применен SSL-сертификат aht.crt, т.к. использован протокол TLS 1.3;

  • выполнено перенаправление HTTP-запроса на Реальный Сервер 10.1.0.10 с преднастроенным SSL Offload;

  • изменены параметры подключения между пользователем и Termidesk Connect.

Вывод команды curl:

* Host a.howto.ru:443 was resolved.
* IPv6: (none)
* IPv4: 10.101.251.195
*   Trying 10.101.251.195:443...
* Connected to a.howto.ru (10.101.251.195) port 443
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256 / [blank] / UNDEF
* ALPN: server did not agree on a protocol. Uses default.
*  Server certificate:
*  subject: C=RU; ST=UV; L=MSK; O=Example Inc.; OU=Web; CN=a.howto.ru
*  start date: Aug 6 17:16:17 2025 GMT
*  expire date: Aug 6 17:16:17 2026 GMT
*  issuer: C=RU; ST=UV; L=MSK; O=Example Inc.; OU=Web; CN=a.howto.ru
*  SSL certificate verify result: self signed certificate (18), continuing anyway.
* using HTTP/1.x
> GET /ss1 HTTP/1.1
> Host: a.howto.ru
> User-Agent: curl/8.7.1
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 200 OK
< Server: nginx/1.24.0 (Ubuntu)
< Date: Wed, 06 Aug 2025 17:17:15 GMT
<Content-Type: text/html
< Content-Length: 596
< Connection: keep-alive
<
<html><body>SERVER___01<br />src_ip-port: 10.1.0.194 : 13816<br /> connect-to: 10.1.0.10<br /> http_req: GET /ss1 HTTP/1.1 <b r /> UsAg: curl/8.7.1<br />ssl_reuse: .
* Connection #0 to host a.howto.ru left intact
<br /> Used Cipher: ECDHE-RSA-AES256-SHA384<br />ssl-protocol: TLSv1.2 <br /> Supported by client ssl- ciphers: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384:TLS_EMPTY_RENEGOTIATION_INFO_SCSV </body></html>#