Přidejte certifikát SSL/TLS do clusteru Kubernetes

Pridejte Certifikat Ssl Tls Do Clusteru Kubernetes



SSL certifikáty se používají k zabezpečení aplikace vytvořené na Kubernetes pro budoucí bezpečnost. Vezměme si další bezpečný certifikát, TLS, který obsahuje velmi bezpečný soukromý klíč. Certifikáty jsou vytvářeny pomocí certifikátů:  K8r.io API. Naučíme vás konfiguraci SSL certifikátu pomocí podrobných příkladů. Začněme certifikátem SSL v Kubernetes. SSL certifikáty jsou pro prohlížeče velmi důležité. Prohlížeč s pomocí SSL a TLS certifikátů vytváří zabezpečené spojení se službami Kubernetes.

Předpoklady:

Každý uživatel musí mít nejnovější verzi svého systému Ubuntu. Uživatel operačního systému Windows si nainstaluje virtuální box a virtuálně do systému přidá Ubuntu nebo Linux. Aby uživatelé lépe porozuměli tomuto tématu, musí znát Kubernetes, příkazový řádek kubectl, pody a clustery a znát cluster DNS.







Pojďme se krátce podívat na konfiguraci certifikátu SSL v Kubernetes rozdělením celého postupu do různých kroků.



Krok 1: Spusťte ovládací panel Kubernetes

V naší aplikaci chceme prostředí, kde můžeme spouštět příkazy Kubernetes k provádění úloh Kubernetes. Výsledkem je, že nám Kubernetes poskytuje místní kontejner s názvem „minikube“. Při každém spuštění aplikace Kubernetes spustíme minikube v Kubernetes, což je v podstatě terminál, který je nutný pro spouštění příkazů Kubernetes. V tomto kroku spustíme příkaz pro inicializaci Minikube, což je:



> spustit minikube

Když spustíme tento příkaz na našem systémovém terminálu, spuštění příkazu se spustí stisknutím tlačítka enter. Příkaz nám na oplátku zobrazí níže přiložený snímek obrazovky.





Krok 2: Vygenerujte žádost o podpis certifikátu

Po vytvoření clusteru pomocí Minikube nyní chceme vytvořit žádost o podpis certifikátu. Výměnou za tuto akci spustíme příkaz pro podepsání žádosti o certifikát a vygenerování soukromého klíče.



> kočka << EOF | cfssl genkey - | cfssljson -prostě server

Po provedení dotazu je požadavek úspěšně vygenerován pomocí soukromého klíče. Výsledek je přiložen výše jako snímek obrazovky.

Krok 3: Vytvořte manifest žádosti o podpis certifikátu v souboru YAML

V tomto kroku vytvoříme manifest souboru YAML pro vytvoření CSR v Kubernetes. Spustíme příkaz níže:

> kočka << EOF | kubectl aplikovat -F

Po provedení tohoto příkazu je úspěšně vytvořen soubor YAML. A odešleme jej na server API, jak je znázorněno na přiloženém snímku obrazovky.

Krok 4:  Získejte stav žádosti o podpis certifikátu

V tomto kroku se podíváme na stav CSR, jak je vidět prostřednictvím API. Spuštěním daného příkazu můžeme získat stav žádosti o certifikát.

> kubectl popsat csv my-svc.my-namespace

Po spuštění příkazu se na výstupu zobrazí stav CSR, jak je znázorněno na přiloženém snímku obrazovky. Stav CSR je „nevyřízeno“ a tento stav pochází z API. Název souboru je my-svc. můj-namespace a anotace, žádající uživatel a předmět, alternativní jména subjektu s DNS názvy a IP adresami, události atd. jsou zahrnuty v popisu CSR. Stav je „čeká“, což znamená, že certifikát CSR ještě nebyl schválen.

Krok 5:  Schválení certifikátů CSR

Stav certifikátu CSR stále čeká na vyřízení. V tomto případě tedy odešleme dotaz do Kubernetes’ API pro schválení CSR certifikátu. Tento příkaz spustíme ke schválení:

> kubectl certifikát schvaluje my-svc .my-namespace

Příkaz zobrazí výstup po provedení. Certifikát CSR schvaluje oprávněná osoba, například administrace Kubernetes. Protože jsme autorizovaní uživatelé, vytváříme soubory YAML. V důsledku toho lze certifikát CSR snadno schvalovat pomocí příkazu, jak je znázorněno na obrázku níže pro objasnění.

my-svc.my-namespace je úspěšně schválen prostřednictvím Certificates.k8s.io API.

Krok 6: Získejte certifikát CSR v Kubernetes

Nyní čekáme, zda byl CSR certifikát schválen. Spustíme tedy příkaz, abychom získali seznam všech CSR certifikátů, které jsou aktuálně aktivní v systému. Spusťte příkaz:

> kubectl získat csr

Název schváleného CSR certifikátu v Kubernetes je zobrazen na přiloženém snímku obrazovky. Tento příkaz vrátí jméno, věk, jméno signatáře, žadatele, požadovanou dobu trvání a stav certifikátu CSR.

Krok 7: Podepište certifikát vytvořením autority

V tomto kroku uvidíme, jak se certifikáty podepisují v Kubernetes. SSL certifikát je schválen, ale ještě není podepsán. Jméno podepisovatele se objeví na certifikátu v Kubernetes. Spustíme příkaz, kterým požadovaný podepisující podepisuje certifikát. Příkaz je:

> kočka << EOF | cfssl genart -initca - | cfssljson – holé ca

{

'CN' : 'Můj vzorový signatář' ,
'klíč' : {
'něco' : 'rsa' ,
'velikost' : 2048
}


}

EOF

Spustí se příkaz k digitálnímu podepsání certifikátu. Podepisující podepisuje požadované certifikáty a aktualizuje stav API příkazem „SSL certifikát“. Spuštěním výše uvedeného příkazu jsme vytvořili podpisový certifikát a výsledek je zobrazen na přiloženém snímku obrazovky. K podpisu certifikátu bylo úspěšně použito jedinečné sériové číslo.

Krok 8:  Vytvořte soubor JSON pro vydání certifikátu

Po podpisu certifikátu vytvoříme JSON soubor, ze kterého vystavíme certifikát. Spuštěním následujícího příkazu s přiloženým snímkem obrazovky vytvoříme soubor JSON:

> nano signingfile.json

Po provedení příkazu se vytvoří soubor JSON, jak je vidět na snímku obrazovky níže.

Krok 9:  Použijte Server-Signing-config.json

V tomto kroku používáme k podepisování a vydávání certifikátů soubor server-signing-config, který je v JSON. Spustíme příkaz pro podepsání certifikátu pomocí souboru soukromého klíče.

> kubectl get csr my-svc.my-namespace - jsonpath =' { .spec.požadavek } ' | \ základ64 --dekódovat | \ znak cfssl -že ca.pem -ca ca-klíč ca-klíč.pem -config server-signing-config.json | \ cfssljson -prostě ca-signed-server

Po tomto příkazu je podepsán certifikát, který je již definován v souboru json. Vygeneruje se sériové číslo tohoto CSR. Zde vygenerujeme podepsaný soubor servisního certifikátu s názvem „ca-signed-server.pem“.

Krok 10: Nahrání podepsaného certifikátu do objektu API

V tomto kroku nahrajeme podepsaný certifikát do nevyřízeného stavu API, který jsme viděli výše. Příkaz pro nahrání je:

> kubectl get csr my-svc.my-namespace - json | \  jq '.status.certificate = '

'
$ ( base64 ca-signed-server.pem | tr -d '\n' ) ''' | \

> kubectl nahradit --drsný / apis / certifikáty.k8s.io / v1 / požadavky na podepisování certifikátů / my-svc.my-   jmenný prostor / postavení -F -

Po provedení tohoto příkazu se podepsaný certifikát úspěšně nahraje, kdykoli je schváleno CSR. Výše přiložený snímek obrazovky nám ukazuje formát JSON, který nahraje podepsaný certifikát jako objekty API.

Krok 11: Zaregistrujte schválené certifikáty v Kubernetes

Znovu spustíme příkaz pro zobrazení schválených certifikátů v Kubernetes.

> kubectl získat csr

Certifikát byl schválen a úspěšně vydán, jak ukazuje snímek obrazovky výše.

Krok 12: Uložte certifikát do systému

V tomto kroku se naučíme, jak stáhnout podepsaný certifikát a úspěšně jej použít v našem systému. Certifikát snadno nasadíme na server. Příkaz je:

> kubectl get csr my-svc.my-namespace - jsonpath = '{.status.certificate}' \

| základ 64 --dekódovat > server.crt

Krok 13:  Vyplňte certifikát

V tomto kroku se naučíme, jak naplnit certifikát na serveru, abychom jej mohli snadno použít pro zabezpečení webu. Spustíme příkaz:

Kalsoom @ Kalsoom > kubectl vytvořit tajný tls server --certifikát server.crt --klíč server-key.pem

Výše přiložený snímek obrazovky nám ukazuje, že zabezpečený nebo tajný server TLS byl úspěšně vytvořen s názvem cert server.cr a majícím soukromý klíč server-key.pem.

Krok 14: Konfigurace Mapování certifikátu

V tomto kroku nakonfigurujeme certifikát, abychom zajistili, že se jedná o certifikát zabezpečeného poskytování, spuštěním příkazu níže:

> kubectl vytvořte konfigurační mapu example-serving-ca --ze-souboru ca.crt=ca.pem

Jak je znázorněno na přiloženém snímku obrazovky, konfigurační mapa/example-serving-ca je úspěšně vytvořena v Kubernetes pro zabezpečené připojení na webovém serveru.

Závěr

Certifikáty SSL se používají k zajištění zabezpečení aplikací Kubernetes na webovém serveru. Každý krok jsme podrobně vysvětlili pro vaše pochopení. Stejné příkazy můžete také spustit v aplikaci Kubernetes a nainstalovat certifikát SSL.