CLI¶
Обзор¶
SSL-профили и SNI-профили используются в системе балансировки нагрузки для настройки обработки соединений TLS/SSL. Они определяют, какие сертификаты, протоколы и алгоритмы шифрования должны использоваться при установке frontend-соединений (между клиентом и ADC) и backend-соединений (между ADC и Worker).
SSL-профиль поддерживает такие функции, как:
TLS-терминация
Выбор сертификата на основе SNI
Проверка клиентского сертификата (mTLS)
Управление версией TLS и шифрами
Безопасное взаимодействие с backend-серверами
Использование на frontend¶
SSL-профили на frontend используются для:
TLS-терминация и выбор сертификата. ADC принимает зашифрованные соединения и расшифровывает их на уровне приложения. SSL-профили определяют, какой сертификат используется — либо по умолчанию, либо выбранный на основе имени хоста SNI, предоставленного клиентом.
mTLS-аутентификация. Если включена, профиль принудительно проверяет клиентский сертификат с использованием доверенной цепочки сертификатов удостоверяющего центра (CA).
Управление версией TLS и шифрами. SSL-профили позволяют ограничивать или требовать использование конкретных версий TLS (например, разрешение только TLS 1.3) и контролировать разрешённые наборы шифров.
Поддержка доменных политик TLS. SNI-профили можно привязать для сопоставления отдельных доменных имён с разными сертификатами, доверенными цепочками CA и настройками TLS.
Чтобы применить SSL-профили на frontend, назначьте их сервису.
Использование на backend¶
SSL-профили на backend используются, когда ADC подключается к backend-серверам по протоколу TLS. Они поддерживают:
Повторное шифрование. Обеспечивает шифрование данных не только между клиентом и ADC, но и между ADC и backend-сервером.
Проверка сертификатов backend-серверов. SSL-профиль позволяет ADC проверять сертификат backend-сервера по доверенной цепочке CA, обеспечивая взаимодействие только с доверенными системами.
Представление клиентских сертификатов (mTLS). ADC может представить свой сертификат при подключении к backend-сервисам, требующим mTLS-аутентификации.
Управление версиями TLS и шифрами. Backend SSL-профили позволяют контролировать, какие версии TLS и какие наборы шифров разрешены.
Для применения SSL-профилей на backend назначьте их Target-группам или отдельным Workers для детального управления.
Настройка¶
SSL-профиль¶
- vlb ssl-profile NAME¶
Создать SSL-профиль.
После создания можно настроить следующие параметры в SSL-профиле:
- ca-chain NAME¶
Доверенная цепочка CA для верификации сертификата сервера.
- ca-verify NAME¶
Цепочка сертификатов для проверки Worker.
- certificate NAME¶
Сертификат SSL-профиля. Используется как сертификат сервера на frontend или как клиентский сертификат при подключении к backend (mTLS).
- cert-chain NAME¶
Дополнительная цепочка сертификатов, отправляемая вместе с SSL-сертификатом. Используется для корректного представления цепочки.
- cipher SUITE_LIST¶
Разрешённые шифры (TLS 1.2):
ecdhe-ecdsa-aes256-gcm-sha384 ecdhe-rsa-aes256-gcm-sha384 dhe-rsa-aes256-gcm-sha384 ecdhe-ecdsa-chacha20-poly1305 ecdhe-rsa-chacha20-poly1305 dhe-rsa-chacha20-poly1305 ecdhe-ecdsa-aes128-gcm-sha256 ecdhe-rsa-aes128-gcm-sha256 dhe-rsa-aes128-gcm-sha256 ecdhe-ecdsa-aes256-sha384 ecdhe-rsa-aes256-sha384 dhe-rsa-aes256-sha256 ecdhe-ecdsa-aes128-sha256 ecdhe-rsa-aes128-sha256 dhe-rsa-aes128-sha256 ecdhe-ecdsa-aes256-sha ecdhe-rsa-aes256-sha dhe-rsa-aes256-sha ecdhe-ecdsa-aes128-sha ecdhe-rsa-aes128-sha dhe-rsa-aes128-sha aes256-gcm-sha384 aes128-gcm-sha256 aes256-sha256 aes128-sha256 aes256-sha aes128-sha
- cipher expression STRING¶
Разрешённые шифры через STRING. Например:
trafficsoft(vlb-ssl-profile)# cipher expression ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
- ciphersuites {tls_aes_256_gcm_sha384|tls_chacha20_poly1305_sha256|tls_aes_128_gcm_sha256}¶
Разрешённые наборы шифров (TLS 1.3).
- ciphersuites expression STRING¶
Разрешённые наборы шифров через STRING.
- client-certificate NAME¶
Клиентский сертификат для Worker (используется в соединениях mTLS).
- max-protocol {tls1_2|tls1_3}¶
Максимальная версия криптографического протокола.
- min-protocol {tls1_2|tls1_3}¶
Минимальная версия криптографического протокола.
- no-verify-worker¶
Пропустить проверку сертификата Worker.
- servername NAME [certificate NAME]¶
Server Name Indication и связанный сертификат для TLS-соединений.
- sni-profile NAME¶
Один или несколько дополнительных SNI-профилей для расширения обработки сертификатов на основе SNI.
- verify-client {off|on|optional}¶
Режим проверки клиентского сертификата:
off— не проверять (по умолчанию)on— требовать и проверять клиентский сертификат с использованием цепочки CAoptional— проверять, если предоставлен
- verify-depth (1-16)¶
Максимальная глубина проверки цепочки сертификатов.
- client-renegotiation {disable|enable|enable-legacy}¶
Управление повторным согласованием TLS со стороны клиента на access-point:
disable— запретить повторное согласование (по умолчанию)enable— разрешить безопасное повторное согласование (RFC 5746)enable-legacy— разрешить повторное согласование, включая небезопасное (legacy)
SNI-профиль¶
SNI-профили (Server Name Indication Profile) позволяют сопоставлять доменные имена с конкретными сертификатами и настройками TLS.
Примечание
SNI-профиль сам по себе неактивен. Он должен быть привязан к SSL-профилю, чтобы вступить в силу, либо на frontend-соединении (клиентская сторона), либо на backend-соединении (исходящее), в зависимости от того, где применяется SSL-профиль.
- vlb sni-profile NAME¶
Создать SNI-профиль.
После создания можно настроить следующие параметры в SNI-профиле:
- ca-chain NAME¶
Доверенная цепочка CA для верификации сертификата сервера.
- cert-chain NAME¶
Дополнительная цепочка сертификатов, отправляемая вместе с SSL-сертификатом из записи servername. Используется для корректного представления цепочки, а не для проверки доверия.
- cipher SUITE_LIST¶
Разрешённые шифры (TLS 1.2). Список доступных шифров аналогичен SSL-профилю.
- cipher expression STRING¶
Разрешённые шифры через STRING.
- ciphersuites {tls_aes_256_gcm_sha384|tls_chacha20_poly1305_sha256|tls_aes_128_gcm_sha256}¶
Разрешённые наборы шифров (TLS 1.3).
- ciphersuites expression STRING¶
Разрешённые наборы шифров через STRING.
- max-protocol {tls1_2|tls1_3}¶
Максимальная версия криптографического протокола.
- min-protocol {tls1_2|tls1_3}¶
Минимальная версия криптографического протокола.
- servername NAME [certificate NAME]¶
Server Name Indication и связанный сертификат для TLS-соединений.
Show-команды¶
- show vlb sni-profile [NAME]¶
Показать информацию об указанном SNI-профиле (или обо всех).
- show vlb ssl-profile [NAME]¶
Показать информацию об указанном SSL-профиле (или обо всех).
Пример вывода:
trafficsoft# show vlb ssl-profile ssl_profile1 SSL profile ssl_profile1 docs.trafficsoft.ru: cert (build cert chain OK) trafficsoft.ru: cert + ca-chain (build cert chain OK) Profile statistics: handshakes: Default 0 Worker 0 docs.trafficsoft.ru 0 trafficsoft.ru 0
Привязки сертификатов:
docs.trafficsoft.ru: cert (build cert chain OK)— сертификат настроен для доменаdocs.trafficsoft.ru. Цепочка сертификатов успешно построена без дополнительной цепочки CA, что означает, что она либо самодостаточна, либо промежуточные сертификаты встроены.trafficsoft.ru: cert + ca-chain (build cert chain OK)— сертификат настроен для доменаtrafficsoft.ruвместе с отдельной цепочкой CA. Полная цепочка сертификатов успешно построена.
Это подтверждает, что оба имени серверов корректно связаны с действительными и полными цепочками сертификатов, которые будут представлены клиентам во время TLS-рукопожатия.
Статистика рукопожатий:
Default— количество TLS-рукопожатий, где не было предоставлено SNI или не было найдено совпадение.Worker— TLS-рукопожатия, инициированные ADC к backend-серверам с использованием этого профиля.docs.trafficsoft.ru/trafficsoft.ru— количество рукопожатий, где клиент запросил соответствующий SNI.