Перейти к основному содержимому
TLS(SSL)-сертификаты балансировщика нагрузки
Последнее изменение:

TLS(SSL)-сертификаты балансировщика нагрузки

Для работы с HTTPS-трафиком на балансировщик необходимо добавить TLS(SSL)-сертификат, чтобы балансировщик мог читать HTTPS-запросы и использовать информацию протокола HTTP для правильной балансировки. Терминация TLS-сертификата происходит на балансировщике, балансировщик передает данные серверам по HTTP.

Сертификаты с пустым полем CN (Common Name) не поддерживаются в балансировщиках нагрузки.

Если вы используете балансировщик для работы с кластером Managed Kubernetes, по умолчанию балансировщик создается без TLS(SSL)-сертификата и для приема трафика назначается внешний порт 80. Чтобы создать балансировщик с TLS(SSL)-сертификатом и назначить для приема трафика внешний порт 443, используйте инструкцию Терминировать TLS-соединения⁠ в разделе Managed Kubernetes. Для корректной работы балансировщика в кластере все действия с балансировщиком необходимо выполнять через kubectl.

Балансировщик нагрузки работает с TLS(SSL)-сертификатами из менеджера секретов. Вы можете:

Сертификат добавляется при создании правила для HTTP- или HTTPS-трафика. В панели управления для правила можно выбрать только один TLS(SSL)-сертификат. Используйте OpenStack CLI, если вам нужно добавить в правило несколько сертификатов или добавить mTLS-сертификат.

Вы можете изменить сертификат после создания правила:

Добавить несколько TLS(SSL)-сертификатов для балансировщика

  1. Загрузите TLS(SSL)-сертификаты в менеджер секретов — выпустите Let's Encrypt® сертификаты или добавьте пользовательские. Сертификаты с пустым полем CN (Common Name) не поддерживаются в облачных балансировщиках нагрузки.

  2. Откройте OpenStack CLI.

  3. Добавьте сертификаты — создайте новое правило для балансировщика нагрузки или обновите существующее:

    openstack loadbalancer listener create \
    -v --protocol-port 443 \
    --protocol TERMINATED_HTTPS \
    --name <listener_name> \
    --default-tls-container=<certificate_uuid_1> \
    --sni-container-refs <certificate_uuid_1> <certificate_uuid_2> \
    -- <loadbalancer>

    Укажите:

    • <listener_name> — имя правила;
    • <certificate_uuid_1>, <certificate_uuid_2> — ID сертификатов, которые вы добавили в менеджер секретов на шаге 1. Можно скопировать в панели управления: в верхнем меню нажмите ПродуктыМенеджер секретов → вкладка Сертификаты → в меню сертификата выберите Скопировать UUID;
    • <loadbalancer> — ID или имя балансировщика. Список можно посмотреть с помощью команды openstack loadbalancer list.

Добавить mTLS-сертификат для балансировщика

Протокол mTLS отличается от TLS двусторонней аутентификацией — при установке соединения проверяется не только подлинность сервера, но и подлинность входящего запроса. Для этого в каждой сессии используются два сертификата — для сервера в целевой группе за балансировщиком и для входящего запроса.

  1. Загрузите в менеджер секретов CA-сертификат, который будет использоваться для аутентификации входящих запросов на балансировщик, — добавьте его в качестве пользовательского.

  2. Загрузите в менеджер секретов сертификат, который будет использоваться для аутентификации сервера в целевой группе за балансировщиком, — выпустите Let's Encrypt® сертификат или добавьте пользовательский.

  3. Откройте OpenStack CLI.

  4. Создайте правило с mTLS-сертификатом:

    openstack loadbalancer listener create \
    -v --protocol-port 80 \
    --protocol TERMINATED_HTTPS \
    --name <listener_name> \
    --client-authentication MANDATORY \
    --client-ca-tls-container-ref <certificate_uuid_1> \
    --default-tls-container-ref <certificate_uuid_2> \
    -- <loadbalancer>

    Укажите:

    • <listener_name> — имя правила;
    • <certificate_uuid_1> — ID CA-сертификата, который вы добавили в менеджер секретов на шаге 1. Можно скопировать в панели управления: в верхнем меню нажмите ПродуктыМенеджер секретов → вкладка Сертификаты → в меню сертификата выберите Скопировать UUID;
    • <certificate_uuid_2> — ID сертификата, который вы добавили в менеджер секретов на шаге 2. Можно скопировать в панели управления: в верхнем меню нажмите ПродуктыМенеджер секретов → вкладка Сертификаты → в меню сертификата выберите Скопировать UUID;
    • <loadbalancer> — ID или имя балансировщика. Список можно посмотреть с помощью команды openstack loadbalancer list.

Заменить TLS(SSL)-сертификат в правиле балансировщика

Если в правило балансировщика нагрузки с HTTPS-протоколом добавлен TLS(SSL)-сертификат и заканчивается срок его действия, его можно заменить — добавить другой сертификат с новой датой окончания действия сертификата.

  1. Добавьте новый пользовательский сертификат в менеджер секретов.

  2. В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.

  3. Перейдите в раздел Балансировщики → вкладка Балансировщики.

  4. Откройте страницу балансировщика.

  5. Откройте карточку правила.

  6. В строке TLS-сертификат нажмите .

  7. Выберите новый сертификат. Сертификаты с пустым полем CN (Common Name) не поддерживаются в облачных балансировщиках нагрузки.

  8. Нажмите .