Lisää SSL/TLS-varmenne Kubernetes-klusteriin

Lisaa Ssl Tls Varmenne Kubernetes Klusteriin



SSL-varmenteita käytetään Kubernetesissa tehdyn sovelluksen suojaamiseen tulevaisuuden turvallisuuden vuoksi. Otetaan toinen suojattu varmenne, TLS, joka sisältää erittäin turvallisen yksityisen avaimen. Varmenteet luodaan varmenteilla:  K8r.io API. Opetamme SSL-varmenteen määrittämistä yksityiskohtaisten esimerkkien avulla. Aloitetaan SSL-varmenteesta Kubernetesissa. SSL-sertifikaatit ovat erittäin tärkeitä selaimille. Selain luo SSL- ja TLS-varmenteiden avulla suojatun yhteyden Kubernetes-palveluihin.

Esitiedot:

Jokaisella käyttäjällä on oltava Ubuntun uusin versio järjestelmästään. Windows-käyttöjärjestelmän käyttäjä asentaa virtuaalilaatikon ja lisää Ubuntun tai Linuxin virtuaalisesti järjestelmään. Käyttäjien on tunnettava Kubernetes, kubectl-komentorivi, podit ja klusterit sekä klusterin DNS ymmärtääkseen tätä aihetta paremmin.







Katsotaanpa lyhyesti SSL-varmenteen määritystä Kubernetesissa jakamalla koko menettely eri vaiheisiin.



Vaihe 1: Käynnistä Kubernetes Control Panel

Haluamme sovellukseemme ympäristön, jossa voimme suorittaa Kubernetes-komentoja Kubernetes-tehtävien suorittamiseksi. Tämän seurauksena Kubernetes tarjoaa meille paikallisen kontin nimeltä 'minikube'. Jokaisen Kubernetes-sovelluksen käynnistyksen yhteydessä käynnistämme Kubernetesissa minikubin, joka on pohjimmiltaan pääte, jota tarvitaan Kubernetes-komentojen suorittamiseen. Tässä vaiheessa suoritamme komennon Minikuben alustamiseksi, joka on:



> aloita minikube

Kun suoritamme tämän komennon järjestelmäpäätteessämme, komennon suoritus alkaa painamalla enter-painiketta. Komento näyttää meille vastineeksi alla liitetyn kuvakaappauksen tuloksen.





Vaihe 2: Luo varmenteen allekirjoituspyyntö

Kun olet luonut klusterin Minikubella, haluamme nyt luoda varmenteen allekirjoituspyynnön. Vastineeksi tästä toimenpiteestä suoritamme komennon varmennepyynnön allekirjoittamiseksi ja yksityisen avaimen luomiseksi.



> kissa << EOF | cfssl genkey - | cfssljson -vain palvelin

Kyselyn suorittamisen jälkeen pyyntö luodaan onnistuneesti yksityisellä avaimella. Tulos on liitetty yllä kuvakaappauksena.

Vaihe 3: Luo sertifikaatin allekirjoituspyyntöluettelo YAML-tiedostoon

Tässä vaiheessa luomme YAML-tiedostoluettelon CSR:n luomiseksi Kubernetesissa. Suoritamme alla olevan komennon:

> kissa << EOF | kubectl soveltaa -f

Tämän komennon suorittamisen jälkeen YAML-tiedosto luodaan onnistuneesti. Ja lähetämme sen API-palvelimelle, kuten oheisessa kuvakaappauksessa näkyy.

Vaihe 4:  Hanki varmenteen allekirjoituspyynnön tila

Tässä vaiheessa tarkastelemme CSR:n tilaa API:n kautta. Voimme suorittaa annetun komennon noutaaksemme varmennepyynnön tilan.

> kubectl kuvaa csv my-svc.my-namespace

Kun komento suoritetaan, CSR-tila näytetään tulosteessa, kuten oheisessa kuvakaappauksessa näkyy. CSR:n tila on 'odottaa', ja tämä tila tulee API:lta. Tiedoston nimi on my-svc. my-namespace ja huomautukset, pyytävä käyttäjä ja aihe, aiheen vaihtoehtoiset nimet, joissa on DNS-nimiä ja IP-osoitteita, tapahtumat jne. sisältyvät CSR-kuvaukseen. Tila on 'odottaa', mikä tarkoittaa, että CSR-sertifikaattia ei ole vielä hyväksytty.

Vaihe 5:  CSR-sertifikaattien hyväksyminen

CSR-varmenteen tila on edelleen vireillä. Joten tässä tapauksessa lähetämme Kubernetesin API:lle kyselyn CSR-varmenteen hyväksymiseksi. Suoritamme tämän komennon hyväksyntää varten:

> kubectl-sertifikaatti hyväksy my-svc .my-namespace

Komento näyttää tulosteen suorituksen jälkeen. Valtuutettu henkilö, kuten Kubernetes-hallinto, hyväksyy CSR-sertifikaatin. Koska olemme valtuutettuja käyttäjiä, luomme YAML-tiedostoja. Tämän seurauksena CSR-sertifikaatti hyväksytään helposti komennolla, kuten alla olevassa kuvakaappauksessa on selvennettävä.

my-svc.my-namespace on hyväksytty onnistuneesti certificates.k8s.io API:n kautta.

Vaihe 6: Hae CSR-sertifikaatti Kubernetesista

Odotamme nyt, onko CSR-sertifikaatti hyväksytty. Joten suoritamme komennon saadaksemme luettelon kaikista CSR-varmenteista, jotka ovat tällä hetkellä aktiivisia järjestelmässä. Suorita komento:

> kubectl get csr

Hyväksytyn CSR-sertifikaatin nimi Kubernetesissa näkyy liitteenä olevassa kuvakaappauksessa. Tämä komento palauttaa CSR-varmenteen nimen, iän, allekirjoittajan nimen, pyytäjän, pyydetyn keston ja ehdon.

Vaihe 7: Luova viranomainen allekirjoittaa varmenteen

Tässä vaiheessa näemme, kuinka varmenteet allekirjoitetaan Kubernetesissa. SSL-sertifikaatti on hyväksytty, mutta sitä ei ole vielä allekirjoitettu. Allekirjoittajan nimi näkyy varmenteessa Kubernetesissa. Suoritamme komennon, jonka kautta pyydetty allekirjoittaja allekirjoittaa varmenteen. Komento on:

> kissa << EOF | cfssl genart -initca - | cfssljson – paljas n

{

'CN' : 'Oma esimerkkiallekirjoittaja' ,
'avain' : {
'jotain' : 'rsa' ,
'koko' : 2048
}


}

EOF

Komento suoritetaan allekirjoittamaan varmenne digitaalisesti. Allekirjoittaja allekirjoittaa pyydetyt varmenteet ja päivittää API-tilan komennolla 'SSL-sertifikaatti'. Loimme allekirjoitusvarmenteen suorittamalla yllä olevan komennon ja tulos näkyy liitteenä olevassa kuvakaappauksessa. Ainutlaatuista sarjanumeroa on käytetty onnistuneesti varmenteen allekirjoittamiseen.

Vaihe 8:  Luo JSON-tiedosto sertifikaatin myöntämistä varten

Varmenteen allekirjoituksen jälkeen luomme JSON-tiedoston, josta myönnämme varmenteen. Luomme JSON-tiedoston suorittamalla seuraavan komennon liitteenä olevan kuvakaappauksen kanssa:

> nano signingfile.json

Kun komento on suoritettu, JSON-tiedosto luodaan alla olevan kuvakaappauksen mukaisesti.

Vaihe 9:  Käytä Server-Signing-config.json-tiedostoa

Tässä vaiheessa käytämme JSON:ssa olevaa server-signing-config-tiedostoa varmenteiden allekirjoittamiseen ja myöntämiseen. Suoritamme komennon varmenteen allekirjoittamiseen yksityisellä avaintiedostolla.

> kubectl hanki csr my-svc.my-namespace - jsonpath =' { .spec.request } ' | \ base64 --dekoodaa | \ cfssl-merkki -että ca.pem -ca ca-key ca-key.pem -konfiguraatio server-signing-config.json | \ cfssljson -vain ca-allekirjoitettu-palvelin

Tämän komennon jälkeen json-tiedostossa jo määritetty varmenne allekirjoitetaan. Tämän CSR:n sarjanumero luodaan. Täällä luomme allekirjoitetun käyttövarmennetiedoston nimeltä 'ca-signed-server.pem'.

Vaihe 10: Allekirjoitetun varmenteen lataus API-objektissa

Tässä vaiheessa lataamme allekirjoitetun varmenteen odottavaan API-tilaan, jonka näimme yllä. Latauskomento on:

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

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

> kubectl korvaa --raaka / apis / Certificates.k8s.io / v1 / varmenteen allekirjoituspyynnöt / my-svc.my-   nimiavaruus / Tila -f -

Kun tämä komento suoritetaan, allekirjoitettu varmenne ladataan onnistuneesti aina, kun CSR on hyväksytty. Yllä olevassa liitteenä olevassa kuvakaappauksessa näkyy JSON-muoto, joka lataa allekirjoitetun varmenteen API-objekteina.

Vaihe 11: Ota Kubernetesiin hyväksyttyjä varmenteita

Suoritamme uudelleen komennon näyttää hyväksytyt varmenteet Kubernetesissa.

> kubectl get csr

Todistus hyväksyttiin ja myönnettiin onnistuneesti, kuten yllä olevassa kuvakaappauksessa näkyy.

Vaihe 12: Tallenna varmenne järjestelmään

Tässä vaiheessa opimme lataamaan allekirjoitetun varmenteen ja käyttämään sitä onnistuneesti järjestelmässämme. Otamme varmenteen helposti käyttöön palvelimella. Komento on:

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

| base64 --dekoodaa > server.crt

Vaihe 13:  Täytä varmenne

Tässä vaiheessa opimme täyttämään varmenteen palvelimelle, jotta voimme helposti käyttää varmennetta verkkoturvaan. Suoritamme komennon:

Kalsoom @ Kalsoom > kubectl luoda salainen tls-palvelin -- varm server.crt --avain server-key.pem

Yllä olevasta kuvakaappauksesta näet, että TLS-suojattu tai salainen palvelin on luotu onnistuneesti nimellä cert server.cr ja yksityisellä avaimella server-key.pem.

Vaihe 14: Määritä, yhdistä varmenne

Tässä vaiheessa määritämme varmenteen varmistaaksemme, että se on suojattu käyttövarmenne, suorittamalla alla oleva komento:

> kubectl create configmap example-serving-ca --tiedostosta ca.crt=ca.pem

Kuten liitteenä olevasta kuvakaappauksesta näkyy, config map/example-serving-ca on luotu onnistuneesti Kubernetesissa suojattua yhteyttä varten verkkopalvelimella.

Johtopäätös

SSL-varmenteita käytetään Kubernetes-sovellusten suojaukseen verkkopalvelimella. Selitimme jokaisen vaiheen yksityiskohtaisesti ymmärtääksesi. Voit myös suorittaa samat komennot Kubernetes-sovelluksessasi asentaaksesi SSL-varmenteen.