Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
17.01.2025

Cert-Manager

Wdrożenie Cert-Manager na AlexHost VPS dla bezpiecznego Kubernetes

Dlaczego warto używać Cert-Manager na AlexHost? Cert-Manager automatyzuje zarządzanie certyfikatami TLS w Kubernetes, zapewniając bezpieczną, szyfrowaną komunikację. VPS AlexHost z pamięcią masową NVMe, dostępem root i ochroną DDoS zapewnia wysokowydajną, bezpieczną platformę dla klastrów Kubernetes. Niniejszy przewodnik obejmuje funkcje, konfigurację i przypadki użycia Cert-Manager w AlexHost.

Czym jest Cert-Manager?

Cert-Manager to dodatek open-source do Kubernetes, który automatyzuje zarządzanie i odnawianie certyfikatów TLS. Płynnie integruje się z Kubernetes w celu wydawania certyfikatów dla aplikacji działających w klastrze, eliminując ręczne procesy zwykle wymagane do uzyskiwania i odnawiania certyfikatów. Cert-Manager może wydawać certyfikaty z różnych źródeł, w tym Let’s Encrypt, HashiCorp Vault, Venafi i innych prywatnych urzędów certyfikacji (CA). Stale monitoruje certyfikaty pod kątem wygaśnięcia i automatycznie odnawia je w razie potrzeby, zapewniając bezpieczeństwo usług bez ręcznej interwencji

Kluczowe funkcje Cert-Manager

Cert-Manager oferuje kilka kluczowych funkcji, które czynią go nieocenionym narzędziem dla użytkowników Kubernetes

  1. Automatyczne wydawanie certyfikatów: Cert-Manager automatycznie generuje certyfikaty TLS na podstawie zasobów Kubernetes, takich jak ###ATP_NOTR_1_CODE_TAG_NOTR_ATP## lub ###ATP_NOTR_2_CODE_TAG_NOTR_ATP## zasobów niestandardowych. Gwarantuje to, że wszelkie nowe lub zaktualizowane usługi w klastrze są zabezpieczone ważnymi certyfikatami.
  2. Odnawianie certyfikatów: Cert-Manager monitoruje wygaśnięcie wydanych certyfikatów i automatycznie odnawia je przed ich wygaśnięciem, zapewniając, że aplikacje zawsze mają ważne certyfikaty i unikają przestojów.
  3. Obsługa wielu urzędów certyfikacji: Cert-Manager obsługuje różne urzędy certyfikacji, w tym Let’s Encrypt dla bezpłatnych, publicznych certyfikatów SSL, a także wewnętrzne lub prywatne urzędy certyfikacji, zapewniając elastyczność w wyborze sposobu wydawania certyfikatów.
  4. Natywny Kubernetes: Cert-Manager integruje się natywnie z Kubernetes. Wykorzystuje niestandardowe definicje zasobów Kubernetes (CRD) do definiowania żądań certyfikatów i zarządza certyfikatami jako zasobami Kubernetes.
  5. Wyzwania DNS-01 i HTTP-01: Cert-Manager obsługuje wiele rodzajów wyzwań ACME (takich jak DNS-01 i HTTP-01) w celu weryfikacji własności domeny podczas korzystania z urzędów certyfikacji, takich jak Let’s Encrypt. Metody te automatyzują proces weryfikacji, dzięki czemu wydawanie certyfikatów jest bezproblemowe.
  6. Symbole wieloznaczne i certyfikaty dla wielu domen: Cert-Manager może wydawać certyfikaty z symbolami wieloznacznymi, które są przydatne do zabezpieczania wielu subdomen w ramach jednego certyfikatu, a także może obsługiwać certyfikaty dla wielu domen, upraszczając zarządzanie złożonymi aplikacjami.

Jak działa Cert-Manager

Cert-Manager działa poprzez interakcję z zasobami Kubernetes i zewnętrznymi urzędami certyfikacji w celu zarządzania certyfikatami w całym ich cyklu życia. Oto przegląd tego procesu

  1. Żądaniecertyfikatu: Cert-Manager używa zasobu Kubernetes o nazwie Certificate lub Ingress do żądania certyfikatu. Zasoby te zawierają szczegóły, takie jak nazwy domen, które certyfikat będzie obejmował, czas trwania certyfikatu i wystawcę.
  2. Wydawanie certyfikatu: Cert-Manager wchodzi w interakcję ze skonfigurowanym zasobem Issuer lub ClusterIssuer w celu zażądania certyfikatu od urzędu certyfikacji. Emitentem może być Let’s Encrypt, prywatny urząd certyfikacji lub inny obsługiwany dostawca certyfikatów.
  3. Walidacja (wyzwania ACME): W przypadku korzystania z ACME CA, takiego jak Let’s Encrypt, Cert-Manager rozwiąże wyzwanie, aby udowodnić własność domeny. Może to być wyzwanie HTTP-01 (poprzez dostarczenie tokena przez HTTP) lub wyzwanie DNS-01 (poprzez utworzenie rekordu DNS TXT). Po weryfikacji urząd certyfikacji wystawia certyfikat.
  4. Przechowywanie certyfikatu: Wydany certyfikat jest przechowywany w Kubernetes Secret, do którego mogą następnie odwoływać się inne zasoby Kubernetes (takie jak Ingress), aby włączyć TLS dla aplikacji.
  5. Monitorowanie i odnawianie: Cert-Manager stale monitoruje certyfikaty i automatycznie odnawia je przed wygaśnięciem, zapewniając bezpieczeństwo usług bez przestojów.

Składniki Cert-Manager

Cert-Manager składa się z kilku podstawowych komponentów, które współpracują ze sobą w celu obsługi zarządzania certyfikatami w Kubernetes

  • Issuer/ClusterIssuer: Te zasoby definiują, w jaki sposób i gdzie Cert-Manager powinien żądać certyfikatów. Emitent ma zakres przestrzeni nazw, podczas gdy ClusterIssuer dotyczy całego klastra. Zapewniają one szczegóły konfiguracji dla interakcji z żądanym urzędem certyfikacji.
  • Certyfikat: Zasób Certificate definiuje konkretny certyfikat TLS, którego powinien zażądać Cert-Manager. Zawiera szczegóły, takie jak nazwa(y) domeny, czas trwania i powiązany wystawca.
  • CertificateRequest: Cert-Manager używa zasobu CertificateRequest do śledzenia konkretnego żądania certyfikatu. Ten zasób jest automatycznie tworzony przez Cert-Manager, gdy żądany jest nowy certyfikat.
  • Secret: Po uzyskaniu certyfikatu z urzędu certyfikacji Cert-Manager przechowuje certyfikat i klucz prywatny w Kubernetes Secret. Do tego sekretu mogą następnie odwoływać się aplikacje lub zasoby Ingress w celu włączenia protokołu TLS.

Typowe przypadki użycia narzędzia Cert-Manager

Cert-Manager jest szeroko stosowany w środowiskach Kubernetes w celu uproszczenia i zautomatyzowania zarządzania certyfikatami. Oto kilka typowych przypadków użycia

1. Zabezpieczanie aplikacji internetowych za pomocą protokołu HTTPS

Jednym z najpopularniejszych przypadków użycia Cert-Manager jest zabezpieczanie aplikacji internetowych za pomocą HTTPS przy użyciu Let’s Encrypt do wydawania certyfikatów SSL. Cert-Manager może automatycznie wydawać i odnawiać certyfikaty dla zasobów Kubernetes Ingress, zapewniając, że ruch internetowy jest szyfrowany i bezpieczny

2. Automatyzacja odnawiania certyfikatów

Ręczne zarządzanie odnawianiem certyfikatów może być czasochłonne i podatne na błędy ludzkie. Cert-Manager automatyzuje ten proces, monitorując daty wygaśnięcia certyfikatów i odnawiając je przed ich wygaśnięciem, zapewniając, że usługi nie będą narażone na przestoje z powodu wygasłych certyfikatów

3. Zarządzanie certyfikatami wewnętrznymi

Oprócz certyfikatów publicznych, Cert-Manager może zarządzać certyfikatami wydanymi przez prywatne urzędy certyfikacji dla aplikacji wewnętrznych. Na przykład w architekturze mikrousług, w której usługi komunikują się wewnętrznie za pośrednictwem bezpiecznej sieci, Cert-Manager może wydawać i rotować certyfikaty do wewnętrznej komunikacji między usługami

4. Certyfikaty wieloznaczne

W przypadku aplikacji korzystających z wielu subdomen (np. app.example.com, api.example.com), Cert-Manager może wydać pojedynczy certyfikat wieloznaczny (np. *.example.com) w celu zabezpieczenia wszystkich subdomen jednocześnie, upraszczając zarządzanie certyfikatami

Instalacja i konfiguracja Cert-Manager

Instalacja Cert-Manager w klastrze Kubernetes jest prosta. Poniżej przedstawiono ogólne kroki instalacji i konfiguracji Cert-Manager

Krok 1: Instalacja Cert-Manager

Cert-Manager można zainstalować za pomocą Helm lub statycznych manifestów YAML. Oto metoda instalacji 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
Zastąp vX.Y.Z najnowszą wersją Cert-Manager

Krok 2: Konfiguracja wystawcy lub wystawcy klastra

Aby wystawiać certyfikaty, należy skonfigurować podmiot wystawiający lub podmiot ClusterIssuer. Na przykład, aby skonfigurować wystawcę dla Let’s Encrypt, można utworzyć konfigurację YAML w następujący sposób

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

Krok 3: Żądanie certyfikatu

Po skonfigurowaniu wystawcy można utworzyć zasób certyfikatu, aby zażądać certyfikatu TLS dla aplikacji

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

Podsumowanie: Bezproblemowe zabezpieczenie klastra Kubernetes za pomocą Cert-Manager na AlexHost VPS

Cert-Manager automatyzuje zarządzanie certyfikatami TLS, zapewniając bezpieczeństwo aplikacji Kubernetes przy minimalnym wysiłku. Wdróż go na VPS AlexHost, aby uzyskać szybkie wydawanie certyfikatów, zasilane przez NVMe i obsługiwane przez dostęp root.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills