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-namespacePří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 csrNá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.jsonPo 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.