Перейти к основному содержимому
Терминировать TLS-соединения
Последнее изменение:

Терминировать TLS-соединения

Терминирование TLS-соединения для кластера Managed Kubernetes — это процесс расшифровки HTTPS-трафика и перенаправления его на поды Kubernetes в виде HTTP-трафика.

Терминирование TLS-соединения может использоваться:

  • для защиты передачи данных между клиентом и сервисом в кластере;
  • контроля доступа к сервисам в кластере и защиты от несанкционированного доступа;
  • повышения производительности;
  • упрощения управления сертификатами.

В кластере Managed Kubernetes процесс терминирования TLS-соединений можно настроить на балансировщике нагрузки.

Сертификатами можно управлять через менеджер секретов — добавьте свой пользовательский сертификат или выпустите сертификат Let’s Encrypt®.

к сведению

Терминирование TLS-соединения на балансировщике нагрузки доступно, если вы используете версии Kubernetes 1.25 и выше. Вы можете обновить версию кластера.

  1. Добавьте пользовательский сертификат или выпустите его в менеджере секретов.
  2. Создайте балансировщик нагрузки.
  3. Измените А-запись домена.

Добавить или выпустить сертификат

В менеджере секретов можно загрузить сертификат, который был выпущен в сторонних центрах сертификации, или выпустить сертификат Let’s Encrypt®. Выпустить сертификат Let’s Encrypt® можно только для домена, который перенесен в устаревшую версию DNS-хостинга (legacy). Для доменов, добавленных в новую версию DNS-хостинга (actual), сертификат выпустить нельзя.

  1. В панели управления перейдите в раздел Облачная платформа Менеджер секретов.
  2. Нажмите Добавить сертификат.
  3. Нажмите Пользовательский сертификат.
  4. Введите имя сертификата.
  5. Вставьте сертификат. Он должен начинаться с -----BEGIN CERTIFICATE----- и заканчиваться -----END CERTIFICATE-----
  6. Вставьте приватный ключ. Он должен начинаться с -----BEGIN PRIVATE KEY----- и заканчиваться -----END PRIVATE KEY-----
  7. Опционально: добавьте промежуточный сертификат — он связывает SSL-сертификат с корневым центром сертификации. С его помощью браузер убеждается в подлинности выпущенного SSL-сертификата. Если не добавить промежуточный сертификат, то клиент, который подключается по TLS, может посчитать соединение небезопасным.
  8. Опционально: добавьте корневой сертификат — это часть ключа, которым центры сертификации подписывают SSL-сертификат. Он может потребоваться при использовании самоподписанных сертификатов.
  9. Нажмите Добавить.
  10. Откройте страницу сертификата.
  11. Скопируйте универсальный уникальный идентификатор (UUID) сертификата.

Создать балансировщик нагрузки

Создайте манифест с Service типа LoadBalancer:

apiVersion: v1
kind: Service
metadata:
name: <loadbalancer_name>
annotations:
loadbalancer.openstack.org/default-tls-container-ref: "<certificate_uuid>"
spec:
type: LoadBalancer
selector:
app: <application_name>
ports:
- port: 443
protocol: TCP
targetPort: 80
name: https

Укажите:

  • <loadbalanacer_name> — имя балансировщика нагрузки;
  • <certificate_uuid> — универсальный уникальный идентификатор (UUID) сертификата, который вы скопировали в инструкции Добавить или выпустить сертификат;
  • <application_name> — имя приложения.

Созданный балансировщик нагрузки появится в панели управления в разделе Облачная платформаБалансировщики.

Изменить А-запись домена

Вы можете ускорить распространение изменений в ресурсной записи на кеширующие серверы. Для этого за несколько дней до планируемого изменения уменьшите TTL записи до минимально возможного значения. Затем в назначенное время измените ресурсную запись, а когда изменение распространится на кеширующие серверы, верните прежнее значение TTL.

  1. В панели управления перейдите в раздел Сетевые сервисыDNS-хостинг.
  2. Откройте страницу домена.
  3. В меню ( ) A-записи выберите Редактировать.
  4. Измените IP-адрес на адрес балансировщика нагрузки. IP-адрес балансировщика нагрузки можно посмотреть в панели управления в разделе Облачная платформаБалансировщики.
  5. Нажмите Сохранить.
  6. Подождите, пока ресурсная запись обновится на DNS-серверах. Обновление может занимать от TTL записи до 72 часов. TTL ресурсной записи можно посмотреть в панели управления: раздел Сетевые сервисыDNS-хостинг → страница домена → разверните строку записи.
  7. Опционально: проверьте ресурсную запись. Если спустя 72 часа ресурсная запись не обновилась, создайте тикет.
  8. Проверьте, что запросы поступают только на балансировщик нагрузки, а на сервере нет запросов от пользователей.