Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills
17.01.2025

Сертифікований менеджер

Розгортання Cert-Manager на VPS AlexHost для безпечної роботи з Kubernetes

Чому варто використовувати Cert-Manager на AlexHost? Cert-Manager автоматизує управління сертифікатами TLS в Kubernetes, забезпечуючи безпечний, зашифрований зв’язок. VPS від AlexHost зі сховищем NVMe, root-доступом і захистом від DDoS забезпечує високопродуктивну, безпечну платформу для кластерів Kubernetes. У цьому посібнику описано функції Cert-Manager, його налаштування та приклади використання на AlexHost.

Що таке Cert-Manager?

Cert-Manager – це надбудова до Kubernetes з відкритим вихідним кодом, яка автоматизує управління та оновлення сертифікатів TLS. Він легко інтегрується з Kubernetes для випуску сертифікатів для додатків, що працюють в кластері, усуваючи ручні процеси, які зазвичай потрібні для отримання та оновлення сертифікатів. Cert-Manager може випускати сертифікати з різних джерел, включаючи Let’s Encrypt, HashiCorp Vault, Venafi та інші приватні центри сертифікації (CA). Він постійно відстежує термін дії сертифікатів і автоматично поновлює їх за необхідності, гарантуючи, що ваші сервіси залишатимуться захищеними без ручного втручання

Основні можливості Cert-Manager

Cert-Manager пропонує кілька ключових функцій, які роблять його безцінним інструментом для користувачів Kubernetes

  1. Автоматична видача сертифікатів: Cert-Manager автоматично генерує сертифікати TLS на основі ресурсів Kubernetes, таких як
    Ingress
    або
    Certificate
    . Це гарантує, що будь-які нові або оновлені сервіси у вашому кластері будуть захищені дійсними сертифікатами.
  2. Поновлення сертифікатів: Cert-Manager відстежує закінчення терміну дії виданих сертифікатів і автоматично поновлює їх до закінчення терміну дії, гарантуючи, що ваші додатки завжди матимуть дійсні сертифікати і уникнуть простоїв.
  3. Підтримка декількох центрів сертифікації: Cert-Manager підтримує різні центри сертифікації, включаючи безкоштовний Let’s Encrypt, загальнодоступні SSL-сертифікати, а також внутрішні та приватні центри сертифікації, надаючи вам гнучкість у виборі способу випуску сертифікатів.
  4. Kubernetes Native: Cert-Manager інтегрується з Kubernetes нативно. Він використовує власні визначення ресурсів Kubernetes (CRD) для визначення запитів на сертифікати та керує сертифікатами як ресурсами Kubernetes.
  5. Виклики DNS-01 і HTTP-01: Cert-Manager підтримує декілька типів викликів ACME (наприклад, DNS-01 і HTTP-01) для перевірки права власності на домен при використанні таких центрів сертифікації, як Let’s Encrypt. Ці методи автоматизують процес перевірки, роблячи випуск сертифікатів безперешкодним.
  6. Підставні символи та багатодоменні сертифікати: Cert-Manager може випускати підстановочні сертифікати, які корисні для захисту декількох піддоменів одним сертифікатом, а також може обробляти сертифікати для декількох доменів, спрощуючи управління складними додатками.

Як працює Cert-Manager

Cert-Manager працює, взаємодіючи з ресурсами Kubernetes і зовнішніми центрами сертифікації для керування сертифікатами протягом усього їхнього життєвого циклу. Ось огляд цього процесу

  1. Запит на отриманнясертифіката: Cert-Manager використовує ресурс Kubernetes під назвою Certificate або Ingress для запиту сертифіката. Ці ресурси містять такі дані, як доменні імена, на які поширюватиметься сертифікат, термін дії сертифіката та емітента.
  2. Випуск сертифіката: Cert-Manager взаємодіє з налаштованим ресурсом Issuer або ClusterIssuer, щоб запросити сертифікат у CA. Емітентом може бути Let’s Encrypt, приватний ЦС або інший підтримуваний постачальник сертифікатів.
  3. Перевірка (виклики ACME): Якщо ви використовуєте ACME-центри, такі як Let’s Encrypt, Cert-Manager вирішить виклик для підтвердження права власності на домен. Це може бути виклик HTTP-01 (шляхом відправки токена через HTTP) або DNS-01 (шляхом створення TXT-запису DNS). Після перевірки центр сертифікації видає сертифікат.
  4. Зберігання сертифікату: Виданий сертифікат зберігається в Kubernetes Secret, на який потім можуть посилатися інші ресурси Kubernetes (наприклад, Ingress), щоб увімкнути TLS для ваших додатків.
  5. Моніторинг та оновлення: Cert-Manager постійно відстежує сертифікати та автоматично поновлює їх до закінчення терміну дії, гарантуючи, що ваші сервіси залишатимуться захищеними без простоїв.

Компоненти Cert-Manager

Cert-Manager складається з декількох основних компонентів, які працюють разом для керування сертифікатами в Kubernetes

  • Емітент/кластерний емітент: ці ресурси визначають, як і звідки Cert-Manager має запитувати сертифікати. Issuer працює у межах простору імен, а ClusterIssuer – у межах кластера. Вони надають деталі конфігурації для взаємодії з потрібним центром сертифікації.
  • Сертифікат: Ресурс Certificate визначає конкретний сертифікат TLS, який має запитувати Cert-Manager. Він містить такі дані, як доменне ім’я (імена), термін дії та пов’язаний з ним емітент.
  • CertificateRequest: Cert-Manager використовує ресурс CertificateRequest для відстеження конкретного запиту на сертифікат. Цей ресурс автоматично створюється Cert-Manager, коли запитується новий сертифікат.
  • Секрет: Після того, як Cert-Manager отримує сертифікат від центру сертифікації, він зберігає сертифікат і приватний ключ у секреті Kubernetes. Потім на цей секрет можуть посилатися програми або ресурси Ingress, щоб увімкнути TLS.

Поширені випадки використання Cert-Manager

Cert-Manager широко використовується в середовищах Kubernetes для спрощення та автоматизації керування сертифікатами. Ось кілька поширених випадків використання

1. Захист веб-додатків за допомогою HTTPS

Одним з найпопулярніших варіантів використання Cert-Manager є захист веб-додатків за допомогою HTTPS з використанням Let’s Encrypt для випуску SSL-сертифікатів. Cert-Manager може автоматично випускати і поновлювати сертифікати для ресурсів Kubernetes Ingress, гарантуючи, що веб-трафік зашифрований і захищений

2. Автоматизація поновлення сертифікатів

Керування оновленням сертифікатів вручну може забирати багато часу і бути схильним до людських помилок. Cert-Manager автоматизує цей процес, відстежуючи дати закінчення терміну дії сертифікатів і поновлюючи їх до закінчення терміну дії, гарантуючи, що ваші сервіси не постраждають від простою через прострочені сертифікати

3. Керування внутрішніми сертифікатами

Окрім публічних сертифікатів, Cert-Manager може керувати сертифікатами, випущеними приватними центрами сертифікації для внутрішніх додатків. Наприклад, в архітектурі мікросервісів, де сервіси взаємодіють між собою через захищену мережу, Cert-Manager може випускати і ротувати сертифікати для внутрішньої взаємодії між сервісами

4. Підстановочні сертифікати

Для додатків, які використовують кілька субдоменів (наприклад, app.example.com, api.example.com), Cert-Manager може випустити один сертифікат підстановки (наприклад, *.example.com) для захисту всіх субдоменів одночасно, що спрощує управління сертифікатами

Встановлення та налаштування Cert-Manager

Встановити Cert-Manager у кластері Kubernetes дуже просто. Нижче наведено загальні кроки для встановлення та налаштування Cert-Manager

Крок 1: Встановлення Cert-Manager

Ви можете встановити Cert-Manager за допомогою Helm або за допомогою статичних YAML-маніфестів. Ось спосіб встановлення за допомогою Helm

kubectl apply --validate=false -f https://github.com/cert-manager/cert-manager/releases/download/vX.Y.Z/cert-manager.crds.yaml
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version vX.Y.Z
Замініть vX.Y.Z останньою версією Cert-Manager

Крок 2: Налаштування емітента або кластерного емітента

Щоб випускати сертифікати, вам потрібно налаштувати емітента або кластерного емітента. Наприклад, щоб налаштувати емітента для Let’s Encrypt, ви можете створити конфігурацію YAML таким чином

apiVersion:cert-manager.io/v1
kind: ClusterIssuer
metadata:name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: your-email@example.com
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx

Крок 3: Запит сертифікату

Після того, як ви налаштували свого емітента, ви можете створити ресурс Certificate для запиту сертифіката TLS для вашої програми

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: example-tls
namespace: default
spec:
secretName: example-tls-secret
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
commonName: example.com
dnsNames:
- example.com
- www.example.com

Висновок: Легко захистіть свій кластер Kubernetes за допомогою Cert-Manager на VPS-сервері AlexHost

Cert-Manager автоматизує управління сертифікатами TLS, забезпечуючи безпеку додатків Kubernetes з мінімальними зусиллями. Розгорніть його на VPS від AlexHost для швидкої видачі сертифікатів на базі NVMe із підтримкою root-доступу.

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills