Перейти к основному содержимому
Терминировать 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®.

  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: "https://api.<pool>.selvpc.ru/key-manager/v1/containers/<certificate_uuid>"
spec:
type: LoadBalancer
selector:
app: <application_name>
ports:
- port: 443
protocol: TCP
targetPort: 80
name: https

Укажите:

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

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

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

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