Dodaj certyfikat SSL/TLS do klastra Kubernetes

Dodaj certyfikat SSL/TLS do klastra Kubernetes

Certyfikaty SSL służą do zabezpieczenia aplikacji składanej na Kubernetes w celu uzyskania przyszłego bezpieczeństwa. Weźmy kolejny bezpieczny certyfikat, TLS, który zawiera bardzo bezpieczny klucz prywatny. Certyfikaty są tworzone z certyfikatami: K8R.IO API. Nauczymy o konfiguracji certyfikatu SSL za pomocą szczegółowych przykładów. Zacznijmy od certyfikatu SSL w Kubernetes. Certyfikaty SSL są bardzo ważne dla przeglądarek. Przeglądarka, z pomocą certyfikatów SSL i TLS, tworzy bezpieczne połączenie z usługami Kubernetes.

Wymagania wstępne:

Każdy użytkownik musi mieć najnowszą wersję swojego systemu Ubuntu. Użytkownik systemu operacyjnego Windows instaluje wirtualne pole i wirtualnie dodaje Ubuntu lub Linux do systemu. Użytkownicy muszą zapoznać się z Kubernetes, wierszem poleceń Kubectl, kapsułami i klastrami, a także znają klaster DNS, aby lepiej zrozumieć ten temat.

Spójrzmy na krótką konfigurację certyfikatu SSL w Kubernetes, przełamując całą procedurę na różne kroki.

Krok 1: Uruchom panel sterowania Kubernetes

Chcemy środowiska w naszej aplikacji, w której możemy uruchomić polecenia Kubernetes, aby wykonywać zadania Kubernetes. W rezultacie Kubernetes zapewnia nam lokalny kontener o nazwie „MiniKube.”Na każdym starcie aplikacji Kubernetes uruchomimy minikube w Kubernetes, który jest w zasadzie terminalem, który jest wymagany do uruchamiania poleceń Kubernetes. W tym etapie uruchamiamy polecenie, aby zainicjować miniKube, czyli:

> Minikube start

Kiedy uruchamiamy to polecenie na naszym terminalu systemowym, wykonanie polecenia rozpoczyna się od naciśnięcia przycisku ENTER. Polecenie pokazuje nam w zamian wynik zrzut ekranu poniżej.

Krok 2: Generuj żądanie podpisywania certyfikatu

Po utworzeniu klastra za pomocą MiniKube, chcemy teraz utworzyć żądanie podpisywania certyfikatu. W zamian za tę akcję uruchamiamy polecenie podpisania żądania certyfikatu i wygenerowania klucza prywatnego.

> Cat <

Po wykonaniu zapytania żądanie jest pomyślnie generowane za pomocą klucza prywatnego. Wynik jest dołączony powyżej jako zrzut ekranu.

Krok 3: Utwórz manifest żądania podpisania certyfikatu w pliku YAML

W tym kroku utworzymy manifest plik YAML do tworzenia CSR w Kubernetes. Uruchamiamy poniższe polecenie:

> Cat <

Po wykonaniu tego polecenia, plik YAML jest pomyślnie utworzony. I wysyłamy go do serwera API, jak pokazano na załączonym zrzucie ekranu.

Krok 4: Uzyskaj status żądania podpisania certyfikatu

W tym kroku przyjrzymy się statusowi CSR, jak widać za pośrednictwem API. Możemy uruchomić podane polecenie, aby odzyskać status żądania certyfikatu.

> Kubectl Opisz CSV MY-SVC.My-Namespace

Po uruchomieniu polecenia status CSR jest wyświetlany na wyjściu, jak pokazano na załączonym zrzucie ekranu. Status CSR jest „w toku”, a ten status pochodzi z API. Nazwa pliku to MY-SVC. My-Namespace i adnotacje, żądanie użytkownika i przedmiotu, podmiotów alternatywnych nazw DNS i adresów IP, zdarzeń itp. są zawarte w opisie CSR. Status jest „w toku”, co oznacza, że ​​certyfikat CSR nie został jeszcze zatwierdzony.

Krok 5: Zatwierdzenie certyfikatów CSR

Status certyfikatu CSR jest nadal w toku. W tym przypadku wyślemy zapytanie do interfejsu API Kubernetes, aby zatwierdzić certyfikat CSR. Uruchamiamy to polecenie do zatwierdzenia:

> Certyfikat Kubectl zatwierdzi My-SVC .My-Namespace

Polecenie pokazuje wyjście po wykonaniu. Upoważniona osoba, taka jak administracja Kubernetes, zatwierdza certyfikat CSR. Ponieważ jesteśmy autoryzowanymi użytkownikami, tworzymy pliki YAML. W rezultacie certyfikat CSR jest łatwo zatwierdzony za pomocą polecenia, jak pokazano na zrzucie ekranu poniżej w celu wyjaśnienia.

my-svc.My-Namespace jest pomyślnie zatwierdzony za pośrednictwem certyfikatów.K8s.IO API.

Krok 6: Pobierz certyfikat CSR w Kubernetes

Czekamy teraz, aby sprawdzić, czy certyfikat CSR został zatwierdzony. Zatem uruchomimy polecenie, aby uzyskać listę wszystkich certyfikatów CSR, które są obecnie aktywne w systemie. Uruchom polecenie:

> Kubectl otrzyma CSR

Nazwa zatwierdzonego certyfikatu CSR w Kubernetes jest pokazana na załączonym zrzucie ekranu. To polecenie zwraca nazwę, wiek, nazwa podpisującego, żądnik, żądany czas trwania i warunek certyfikatu CSR.

Krok 7: Podpisz certyfikat, tworząc autorytet

W tym kroku zobaczymy, w jaki sposób certyfikaty są podpisywane w Kubernetes. Certyfikat SSL jest zatwierdzony, ale jeszcze nie podpisany. Nazwa podpisującego pojawia się na certyfikcie w Kubernetes. Uruchamiamy polecenie, za pomocą którego żądany podpisuje podpisuje certyfikat. Polecenie to:

> Cat <
„CN”: „Mój przykład sygnatariusz”,
"klucz":
„Algo”: „RSA”,
„Rozmiar”: 2048


EOF

Polecenie jest uruchamiane w celu podpisania certyfikatu cyfrowego. Podpisany podpisuje żądane certyfikaty i aktualizuje status API za pomocą polecenia: „Certyfikat SSL.„Utworzyliśmy certyfikat podpisania, uruchamiając powyższe polecenie, a wynik jest pokazany na załączonym zrzucie ekranu. Unikalny numer seryjny został z powodzeniem wykorzystany do podpisania certyfikatu.

Krok 8: Utwórz plik JSON, aby wydać certyfikat

Po podpisaniu certyfikatu tworzymy plik JSON, z którego wydawamy certyfikat. Utworzymy plik JSON, uruchamiając następujące polecenie z załączonym zrzutem ekranu:

> Nano Signingfile.JSON

Po wykonaniu polecenia plik JSON jest tworzony, co można wyświetlić na zrzucie ekranu poniżej.

Krok 9: Użyj serwera-podpisania-konfig.JSON

W tym kroku używamy pliku podpisania serwera, który jest w JSON, aby podpisać i wydać certyfikaty. Uruchamiamy polecenie podpisania certyfikatu za pomocą pliku klucza prywatnego.

> Kubectl otrzyma CSR MY-SVC.My -Namespace -o jsonpath = '.Spec.żądanie '| \ Base64 - -Decode | \ cfssl znak -ca ca.pem -ca ca-key-key-key.PEM -Config Serwer-podpisanie-konfig.JSON | \ cfsslJson -Bare Ca-podpised-server

Po tym poleceniu podpisuje się certyfikat już zdefiniowany w pliku JSON. Ten numer seryjny CSR jest generowany. Tutaj generujemy podpisany plik certyfikatu porodowego o nazwie „CA-podpisany serwer.pem."

Krok 10: Podpisane przesłanie certyfikatu w obiekcie API

W tym etapie przesyłamy podpisany certyfikat do statora API, który widzieliśmy powyżej. Poleceniem przesyłania jest:

> Kubectl otrzyma CSR MY-SVC.My -Namespace -O JSON | \ jq '.status.certyfikat = "
'$ (base64 CA-podpisany serwer.PEM | tr -d '\ n') '"" | \
> Kubectl Wymień -RAW /API /Certyfikaty.K8s.IO/V1/CertificeSigningRequests/My-Svc.My- przestrzeń nazw/status -f -

Po wykonaniu tego polecenia podpisany certyfikat jest pomyślnie przesyłany za każdym razem, gdy CSR jest zatwierdzony. Załączony zrzut ekwipunku pokazuje nam format JSON, który przesyła podpisany certyfikat jako obiekty API.

Krok 11: Zatwierdzone certyfikaty zatwierdzone w Kubernetes

Ponownie uruchamiamy polecenie, aby pokazać zatwierdzone certyfikaty w Kubernetes.

> Kubectl otrzyma CSR

Certyfikat został zatwierdzony i pomyślnie wydany, jak pokazano na zrzucie ekranu powyżej.

Krok 12: Zapisz certyfikat w systemie

W tym kroku dowiemy się, jak pobrać podpisany certyfikat i z powodzeniem go użyć w naszym systemie. Łatwo wdrażamy certyfikat na serwerze. Polecenie to:

> Kubectl otrzyma CSR MY-SVC.My -Namespace -o jsonpath = '.status.certyfikat '\
|. base64 - -decode> serwer.crt

Krok 13: Zapełnij certyfikat

W tym kroku dowiemy się, jak wypełnić certyfikat na serwerze, abyśmy mogli łatwo użyć certyfikatu do zabezpieczeń internetowych. Uruchamiamy polecenie:

kalsoom@kalsoom> kubectl Utwórz tajny serwer TLS -CERT SERWER.CRT-Key-Server-Key.pem

Wyżej wymieniony zrzut ekranu pokazuje nam, że TLS Secure lub Secret Server jest pomyślnie tworzony z serwerami Name Cert Server.CR i posiadanie klucza prywatnego.pem.

Krok 14: Konfiguruj mapę certyfikatu

W tym etapie skonfigurujemy certyfikat, aby zapewnić, że jest to bezpieczny certyfikat serwowania, uruchamiając poniższe polecenie:

> kubectl Utwórz configMap przykład-serving-ca-od pliku ca.crt = ca.pem

Jak pokazano na załączonym zrzucie ekranu, mapa konfiguracyjna/przykład-serwis-ca jest pomyślnie tworzona w Kubernetes dla bezpiecznego połączenia na serwerze WWW.

Wniosek

Certyfikaty SSL są używane do zapewnienia bezpieczeństwa aplikacji Kubernetes na serwerze WWW. Wyjaśniliśmy każdy krok w twoim zrozumieniu. Możesz również uruchomić te same polecenia w aplikacji Kubernetes, aby zainstalować certyfikat SSL.