Pridėkite SSL / TLS sertifikatą prie „Kubernetes“ grupės

Pridekite Ssl Tls Sertifikata Prie Kubernetes Grupes



SSL sertifikatai naudojami Kubernetes sukurtai programai apsaugoti ateityje. Paimkime kitą saugų sertifikatą, TLS, kuriame yra labai saugus privatus raktas. Sertifikatai kuriami naudojant sertifikatus:  K8r.io API. Išsamių pavyzdžių pagalba mokysime apie SSL sertifikato konfigūraciją. Pradėkime nuo SSL sertifikato „Kubernetes“. SSL sertifikatai yra labai svarbūs naršyklėms. Naršyklė, naudodama SSL ir TLS sertifikatus, sukuria saugų ryšį su Kubernetes paslaugomis.

Būtinos sąlygos:

Kiekvienas vartotojas turi turėti naujausią Ubuntu sistemos versiją. Windows operacinės sistemos vartotojas įdiegia virtualią dėžutę ir virtualiai į sistemą prideda Ubuntu arba Linux. Kad geriau suprastų šią temą, vartotojai turi būti susipažinę su Kubernetes, kubectl komandų eilute, podais ir klasteriais bei žinoti klasterio DNS.







Trumpai pažvelkime į SSL sertifikato konfigūraciją „Kubernetes“, suskaidydami visą procedūrą į skirtingus veiksmus.



1 veiksmas: paleiskite „Kubernetes“ valdymo skydelį

Mes norime, kad mūsų programoje būtų aplinkos, kurioje galėtume paleisti Kubernetes komandas, kad atliktume Kubernetes užduotis. Todėl „Kubernetes“ pateikia mums vietinį konteinerį, vadinamą „minikube“. Kiekvieną kartą paleidus „Kubernetes“ programą, „Kubernetes“ paleidžiame minikube, kuris iš esmės yra terminalas, reikalingas „Kubernetes“ komandoms vykdyti. Šiame žingsnyje paleidžiame komandą, skirtą „Minikube“ inicijavimui, kuri yra:



> paleisti minikube

Kai paleidžiame šią komandą savo sistemos terminale, komandos vykdymas pradedamas paspaudus įvesties mygtuką. Komanda mums parodo žemiau pridėtą ekrano kopijos rezultatą.





2 veiksmas: sugeneruokite sertifikato pasirašymo užklausą

Sukūrę klasterį naudodami „Minikube“, dabar norime sukurti sertifikato pasirašymo užklausą. Mainais už šį veiksmą vykdome komandą sertifikato užklausai pasirašyti ir privataus rakto generavimui.



> katė << EOF | cfssl genkey - | cfssljson - tiesiog serveris

Po užklausos vykdymo užklausa sėkmingai sugeneruojama naudojant privatųjį raktą. Rezultatas pridedamas aukščiau kaip ekrano kopija.

3 veiksmas: YAML faile sukurkite sertifikato pasirašymo užklausos manifestą

Šiame žingsnyje mes sukursime YAML failo manifestą, skirtą CSR sukurti Kubernetes. Vykdome žemiau esančią komandą:

> katė << EOF | kubectl taikyti -f

Įvykdžius šią komandą, sėkmingai sukuriamas YAML failas. Ir mes siunčiame jį į API serverį, kaip parodyta pridėtoje ekrano kopijoje.

4 veiksmas:  Gaukite sertifikato pasirašymo užklausos būseną

Šiame veiksme apžvelgsime CSR būseną, matomą per API. Galime paleisti nurodytą komandą, kad gautume sertifikato užklausos būseną.

> kubectl aprašo csv my-svc.my-namespace

Kai komanda vykdoma, CSR būsena rodoma išvestyje, kaip parodyta pridėtoje ekrano kopijoje. CSR būsena yra „laukiama“ ir ši būsena gaunama iš API. Failo pavadinimas yra my-svc. mano vardų erdvė ir anotacijos, užklausantis vartotojas ir subjektas, subjektų alternatyvūs pavadinimai, turintys DNS pavadinimus ir IP adresus, įvykiai ir kt. yra įtraukti į CSR aprašą. Būsena yra „laukiama“, o tai reiškia, kad CSR sertifikatas dar nepatvirtintas.

5 veiksmas:  CSR sertifikatų patvirtinimas

CSR sertifikato būsena vis dar laukiama. Taigi šiuo atveju mes išsiųsime užklausą į Kubernetes API, kad patvirtintume CSR sertifikatą. Vykdome šią komandą patvirtinimui:

> kubectl sertifikatas patvirtinti mano-svc .my-namespace

Komanda rodo išvestį po vykdymo. Įgaliotas asmuo, pavyzdžiui, Kubernetes administracija, tvirtina CSR sertifikatą. Kadangi esame įgalioti vartotojai, kuriame YAML failus. Dėl to CSR sertifikatas lengvai patvirtinamas naudojant komandą, kaip parodyta toliau pateiktoje ekrano kopijoje, kad būtų paaiškinta.

my-svc.my-namespace sėkmingai patvirtinta per certificates.k8s.io API.

6 veiksmas: gaukite CSR sertifikatą „Kubernetes“.

Dabar laukiame, ar CSR sertifikatas patvirtintas. Taigi, vykdysime komandą, kad gautume visų CSR sertifikatų, kurie šiuo metu yra aktyvūs sistemoje, sąrašą. Paleiskite komandą:

> kubectl gauti csr

Patvirtinto CSR sertifikato „Kubernetes“ pavadinimas rodomas pridėtoje ekrano kopijoje. Ši komanda grąžina CSR sertifikato vardą, amžių, pasirašiusiojo vardą, užklausą, prašomą trukmę ir būklę.

7 veiksmas: kūrimo institucijos pasirašyti sertifikatą

Šiame žingsnyje pamatysime, kaip „Kubernetes“ pasirašomi sertifikatai. SSL sertifikatas patvirtintas, bet dar nepasirašytas. Pasirašančiojo vardas rodomas sertifikate „Kubernetes“. Vykdome komandą, per kurią prašomas signataras pasirašo sertifikatą. Komanda yra:

> katė << EOF | cfssl genart - initca - | cfssljson – plikas ca

{

'CN' : „Mano pavyzdys pasirašęs“ ,
'Raktas' : {
'kažkas' : 'rsa' ,
'dydis' : 2048 m
}


}

EOF

Paleidžiama komanda sertifikatui pasirašyti skaitmeniniu būdu. Pasirašytojas pasirašo prašomus sertifikatus ir atnaujina API būseną komanda „SSL sertifikatas“. Sukūrėme pasirašymo sertifikatą vykdydami aukščiau pateiktą komandą, o rezultatas rodomas pridėtoje ekrano kopijoje. Unikalus serijos numeris sėkmingai panaudotas sertifikatui pasirašyti.

8 veiksmas:  sukurkite JSON failą, kad išduotumėte sertifikatą

Po sertifikato pasirašymo sukuriame JSON failą, iš kurio išduodame sertifikatą. Sukursime JSON failą vykdydami šią komandą su pridedama ekrano kopija:

> nano signingfile.json

Įvykdžius komandą, sukuriamas JSON failas, kaip matyti toliau pateiktoje ekrano kopijoje.

9 veiksmas:  naudokite Server-Signing-config.json

Šiame veiksme sertifikatams pasirašyti ir išduoti naudojame serverio pasirašymo konfigūracijos failą, esantį JSON. Vykdome komandą sertifikato pasirašymui naudojant privataus rakto failą.

> kubectl gauti csr my-svc.my-namespace -The jsonpath =' { .specifinis užklausa } | \ bazė64 -- iššifruoti | \ cfssl ženklas - tai ca.pem -ca ca-key ca-key.pem - konfigūracija server-signing-config.json | \ cfssljson - tiesiog ca-signed-serveris

Po šios komandos pasirašomas sertifikatas, kuris jau yra apibrėžtas json faile. Sugeneruojamas šio CSR serijos numeris. Čia sugeneruojame pasirašytą aptarnavimo sertifikato failą pavadinimu „ca-signed-server.pem“.

10 veiksmas: pasirašyto sertifikato įkėlimas į API objektą

Atlikdami šį veiksmą, įkeliame pasirašytą sertifikatą į laukiančią API būseną, kurią matėme aukščiau. Įkėlimo komanda yra tokia:

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

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

> kubectl pakeisti -- žalias / apis / sertifikatai.k8s.io / v1 / sertifikatų pasirašymo prašymai / my-svc.my-   vardų sritis / statusą -f -

Kai ši komanda vykdoma, pasirašytas sertifikatas sėkmingai įkeliamas, kai tik patvirtinamas CSR. Aukščiau pridėtoje ekrano kopijoje rodomas JSON formatas, kuris įkelia pasirašytą sertifikatą kaip API objektus.

11 veiksmas: įtraukite patvirtintus sertifikatus į Kubernetes

Vėl paleidžiame komandą, kad būtų rodomi patvirtinti sertifikatai „Kubernetes“.

> kubectl gauti csr

Sertifikatas buvo patvirtintas ir sėkmingai išduotas, kaip parodyta aukščiau esančioje ekrano kopijoje.

12 veiksmas: išsaugokite sertifikatą sistemoje

Šiame žingsnyje sužinosime, kaip atsisiųsti pasirašytą sertifikatą ir sėkmingai jį naudoti savo sistemoje. Mes lengvai įdiegiame sertifikatą serveryje. Komanda yra:

> kubectl gauti csr my-svc.my-namespace -The jsonpath = „{.status.certificate}“ \

| bazė64 -- iššifruoti > serveris.crt

13 veiksmas:  užpildykite sertifikatą

Šiame žingsnyje sužinosime, kaip užpildyti sertifikatą serveryje, kad galėtume lengvai naudoti sertifikatą žiniatinklio saugumui. Vykdome komandą:

Kalsoom @ Kalsoom > kubectl sukurti slaptą tls serverį -- Cert serveris.crt --Raktas server-key.pem

Aukščiau pridėtoje ekrano kopijoje matyti, kad TLS saugus arba slaptas serveris sėkmingai sukurtas naudojant pavadinimą cert server.cr ir privatųjį raktą server-key.pem.

14 veiksmas: konfigūruokite pažymėkite sertifikatą

Šiame žingsnyje mes sukonfigūruosime sertifikatą, kad įsitikintume, jog tai yra saugus aptarnavimo sertifikatas, vykdydami toliau pateiktą komandą:

> kubectl sukurti configmap example-serving-ca --iš failo ca.crt=ca.pem

Kaip parodyta pridėtoje ekrano kopijoje, konfigūracijos žemėlapis/example-serving-ca sėkmingai sukurtas Kubernetes, kad būtų užtikrintas saugus ryšys žiniatinklio serveryje.

Išvada

SSL sertifikatai naudojami siekiant užtikrinti Kubernetes programų saugumą žiniatinklio serveryje. Mes išsamiai paaiškinome kiekvieną žingsnį, kad suprastumėte. Taip pat galite paleisti tas pačias komandas savo Kubernetes programoje, kad įdiegtumėte SSL sertifikatą.