Добавьте сертификат SSL/TLS в кластер Kubernetes.

Dobav Te Sertifikat Ssl Tls V Klaster Kubernetes



SSL-сертификаты используются для защиты приложения, созданного в Kubernetes, для обеспечения безопасности в будущем. Возьмем другой безопасный сертификат, TLS, который содержит очень безопасный закрытый ключ. Сертификаты создаются с помощью сертификатов: K8r.io API. Мы расскажем о настройке SSL-сертификата на подробных примерах. Начнем с SSL-сертификата в Kubernetes. SSL-сертификаты очень важны для браузеров. Браузер с помощью сертификатов SSL и TLS создает безопасное соединение с сервисами Kubernetes.

Предпосылки:

Каждый пользователь должен иметь последнюю версию своей системы Ubuntu. Пользователь операционной системы Windows устанавливает виртуальную коробку и виртуально добавляет в систему Ubuntu или Linux. Пользователи должны быть знакомы с Kubernetes, командной строкой kubectl, модулями и кластерами, а также знать DNS кластера, чтобы лучше понять эту тему.







Давайте кратко рассмотрим настройку SSL-сертификата в Kubernetes, разбив всю процедуру на несколько этапов.



Шаг 1: Запустите панель управления Kubernetes

Нам нужна среда в нашем приложении, в которой мы можем запускать команды Kubernetes для выполнения задач Kubernetes. В результате Kubernetes предоставляет нам локальный контейнер под названием minikube. При каждом запуске приложения Kubernetes мы запускаем мини-куб в Kubernetes, который по сути представляет собой терминал, необходимый для выполнения команд Kubernetes. На этом этапе мы запускаем команду для инициализации Minikube, а именно:



> запустить миникуб

Когда мы запускаем эту команду на нашем системном терминале, выполнение команды начинается с нажатия кнопки ввода. В ответ команда показывает нам прикрепленный ниже снимок экрана.





Шаг 2: Создайте запрос на подпись сертификата

После создания кластера с помощью Minikube мы теперь хотим создать запрос на подпись сертификата. В обмен на это действие мы запускаем команду для подписи запроса сертификата и генерации закрытого ключа.



> кошка << EOF | Генкей cfssl - | cfssljson -точный сервер

После выполнения запроса запрос успешно генерируется с закрытым ключом. Результат прикреплен выше в виде скриншота.

Шаг 3. Создайте манифест запроса на подпись сертификата в файле YAML.

На этом этапе мы создадим манифест файла YAML для создания CSR в Kubernetes. Мы запускаем команду ниже:

> кошка << EOF | применить кубектл -f

После выполнения этой команды файл YAML успешно создан. И отправляем на сервер API, как показано на прикрепленном скриншоте.

Шаг 4. Получите статус запроса на подпись сертификата

На этом этапе мы рассмотрим статус CSR, видимый через API. Мы можем запустить данную команду, чтобы получить статус запроса сертификата.

> kubectl описывает csv my-svc.my-namespace

Когда команда запущена, статус CSR отображается в выводе, как показано на прикрепленном снимке экрана. Статус CSR «ожидает рассмотрения», и этот статус исходит от API. Имя файла — my-svc. my-namespace и аннотации, запрашивающий пользователь и субъект, альтернативные имена субъекта, имеющие DNS-имена и IP-адреса, события и т. д. включены в описание CSR. Статус «ожидает рассмотрения», что означает, что сертификат CSR еще не утвержден.

Шаг 5. Утверждение сертификатов CSR

Статус сертификата CSR все еще находится на рассмотрении. Итак, в этом случае мы отправим запрос в API Kubernetes для утверждения сертификата CSR. Мы запускаем эту команду для утверждения:

> сертификат kubectl утверждает my-svc .my-namespace

Команда показывает вывод после выполнения. Уполномоченное лицо, например администрация Kubernetes, утверждает сертификат CSR. Поскольку мы являемся авторизованными пользователями, мы создаем файлы YAML. В результате сертификат CSR легко утверждается с помощью команды, как показано на скриншоте ниже для пояснения.

my-svc.my-namespace успешно одобрен через API certificates.k8s.io.

Шаг 6. Получите сертификат CSR в Kubernetes

Теперь мы ждем, был ли одобрен сертификат CSR. Итак, мы запустим команду, чтобы получить список всех сертификатов CSR, которые на данный момент активны в системе. Запустите команду:

> kubectl получить csr

Имя утвержденного сертификата CSR в Kubernetes показано на приложенном снимке экрана. Эта команда возвращает имя, возраст, имя подписавшего, запрашивающую сторону, запрошенную продолжительность и состояние сертификата CSR.

Шаг 7: Подпишите сертификат, создав центр

На этом этапе мы увидим, как сертификаты подписываются в Kubernetes. SSL-сертификат утвержден, но еще не подписан. Имя подписывающей стороны отображается на сертификате в Kubernetes. Запускаем команду, через которую запрошенный подписывающий подписывает сертификат. Команда:

> кошка << EOF | cfssl генарт -иница - | cfssljson — голый ca

{

'КН' : 'Мой пример подписанта' ,
'ключ' : {
'что нибудь' : 'рса' ,
'размер' : 2048
}


}

EOF

Команда запускается для цифровой подписи сертификата. Подписывающая сторона подписывает запрошенные сертификаты и обновляет статус API с помощью команды «SSL-сертификат». Мы создали сертификат подписи, выполнив приведенную выше команду, и результат показан на прикрепленном снимке экрана. Уникальный серийный номер был успешно использован для подписи сертификата.

Шаг 8. Создайте файл JSON для выпуска сертификата

После подписания сертификата мы создаем файл JSON, из которого выдаем сертификат. Мы создадим файл JSON, выполнив следующую команду с прикрепленным снимком экрана:

> нано файл подписи.json

После выполнения команды создается файл JSON, как показано на снимке экрана ниже.

Шаг 9. Используйте Server-Signing-config.json.

На этом этапе мы используем файл server-signing-config в формате JSON для подписи и выдачи сертификатов. Запускаем команду для подписи сертификата файлом закрытого ключа.

> kubectl получить csr my-svc.my-namespace -The jsonpath знак равно { .spec.request } | \ base64 --декодировать | знак \ cfssl -который ca.pem -ca ca-key ca-key.pem -config сервер-подписание-config.json | \ cfssljson -точный ca-подписанный-сервер

После этой команды сертификат, который уже определен в файле json, подписывается. Генерируется серийный номер этого CSR. Здесь мы создаем подписанный файл сертификата обслуживания с именем «ca-signed-server.pem».

Шаг 10: Загрузка подписанного сертификата в объект API

На этом этапе мы загружаем подписанный сертификат в состояние ожидания API, которое мы видели выше. Команда для загрузки:

> kubectl получить csr my-svc.my-namespace -The json | \  jq '.статус.сертификат = '

'
$ ( base64 ca-signed-server.pem | тр '\n' ) ''' | \

> кубектл заменить --сырой / апис / сертификаты.k8s.io / v1 / запросы на подпись сертификата / пространство имен my-svc.my-   / положение дел -f -

При выполнении этой команды подписанный сертификат успешно загружается всякий раз, когда CSR утверждается. На приложенном выше снимке экрана показан формат JSON, который загружает подписанный сертификат в виде объектов API.

Шаг 11: Зарегистрируйте одобренные сертификаты в Kubernetes

Мы снова запускаем команду, чтобы показать утвержденные сертификаты в Kubernetes.

> kubectl получить csr

Сертификат был утвержден и успешно выдан, как показано на скриншоте выше.

Шаг 12: Сохраните сертификат в системе

На этом этапе мы узнаем, как загрузить подписанный сертификат и успешно использовать его в нашей системе. Мы легко разворачиваем сертификат на сервере. Команда:

> kubectl получить csr my-svc.my-namespace -The jsonpath знак равно '{.статус.сертификат}' \

| base64 --декодировать > сервер.crt

Шаг 13. Заполните сертификат

На этом этапе мы узнаем, как заполнить сертификат на сервере, чтобы мы могли легко использовать сертификат для веб-безопасности. Выполняем команду:

Калсум @ Калсум > kubectl создать секретный сервер tls --cert сервер.crt --ключ сервер-key.pem

На приложенном выше снимке экрана показано, что безопасный или секретный сервер TLS успешно создан с именем cert server.cr и с закрытым ключом server-key.pem.

Шаг 14: Настройте сопоставление сертификата

На этом этапе мы настроим сертификат, чтобы убедиться, что он является сертификатом безопасного обслуживания, выполнив следующую команду:

> kubectl создать configmap example-serving-ca --из файла ca.crt=ca.pem

Как показано на прикрепленном снимке экрана, конфигурация map/example-serving-ca успешно создана в Kubernetes для безопасного подключения к веб-серверу.

Заключение

SSL-сертификаты используются для обеспечения безопасности приложений Kubernetes на веб-сервере. Мы подробно объяснили каждый шаг для вашего понимания. Вы также можете запустить те же команды в своем приложении Kubernetes, чтобы установить сертификат SSL.