Legg til et SSL/TLS-sertifikat til Kubernetes Cluster

Legg Til Et Ssl Tls Sertifikat Til Kubernetes Cluster



SSL-sertifikater brukes for å sikre applikasjonen som er laget på Kubernetes for fremtidig sikkerhet. La oss ta et annet sikkert sertifikat, TLS, som inneholder en veldig sikker privat nøkkel. Sertifikater opprettes med sertifikater:  K8r.io API. Vi vil lære om SSL-sertifikatkonfigurasjon ved hjelp av detaljerte eksempler. La oss starte med SSL-sertifikatet i Kubernetes. SSL-sertifikater er svært viktige for nettlesere. Nettleseren, ved hjelp av SSL- og TLS-sertifikater, skaper en sikker forbindelse med Kubernetes-tjenester.

Forutsetninger:

Hver bruker må ha Ubuntus nyeste versjon av systemet sitt. Brukeren av Windows-operativsystemet installerer en virtuell boks og legger til Ubuntu eller Linux virtuelt til systemet. Brukere må være kjent med Kubernetes, kubectl-kommandolinjen, pods og klynger, og kjenne til klynge-DNS for å forstå dette emnet bedre.







La oss ta en kort titt på SSL-sertifikatkonfigurasjon i Kubernetes ved å dele opp hele prosedyren i forskjellige trinn.



Trinn 1: Start Kubernetes kontrollpanel

Vi ønsker et miljø i applikasjonen vår der vi kan kjøre Kubernetes-kommandoer for å utføre Kubernetes-oppgaver. Som et resultat gir Kubernetes oss en lokalbasert beholder kalt 'minikube.' Ved hver oppstart av Kubernetes-applikasjonen vil vi starte en minikube i Kubernetes, som i utgangspunktet er en terminal som kreves for å kjøre Kubernetes-kommandoer. I dette trinnet kjører vi kommandoen for å initialisere Minikube, som er:



> start minikube

Når vi kjører denne kommandoen på systemterminalen vår, starter utførelsen av kommandoen ved å trykke på enter-knappen. Kommandoen viser oss et skjermbilderesultat som er vedlagt nedenfor.





Trinn 2: Generer forespørsel om sertifikatsignering

Etter å ha opprettet en klynge ved å bruke Minikube, ønsker vi nå å opprette en sertifikatsigneringsforespørsel. I bytte for denne handlingen kjører vi kommandoen for å signere sertifikatforespørselen og generere en privat nøkkel.



> katt << EOF | cfssl genkey - | cfssljson -bare server

Etter utførelse av spørringen er forespørselen vellykket generert med den private nøkkelen. Resultatet er vedlagt ovenfor som et skjermbilde.

Trinn 3: Opprett et sertifikatsigneringsforespørselsmanifest i YAML-filen

I dette trinnet vil vi lage et YAML-filmanifest for å lage en CSR i Kubernetes. Vi kjører kommandoen nedenfor:

> katt << EOF | kubectl gjelder -f

Etter utførelse av denne kommandoen, opprettes en YAML-fil. Og vi sender den til API-serveren, som vist på vedlagte skjermbilde.

Trinn 4:  Få status for forespørsel om sertifikatsignering

I dette trinnet vil vi se på CSR-statusen sett gjennom API. Vi kan kjøre den gitte kommandoen for å hente statusen til sertifikatforespørselen.

> kubectl beskriver csv my-svc.my-namespace

Når kommandoen kjøres, vises CSR-statusen i utgangen, som vist i vedlagte skjermbilde. Statusen til CSR er 'venter', og denne statusen kommer fra API. Navnet på filen er my-svc. my-namespace og merknader, forespørrende bruker og emne, emnealternativer med DNS-navn og IP-adresser, hendelser osv. er inkludert i CSR-beskrivelsen. Statusen er 'venter', noe som betyr at CSR-sertifikatet ikke er godkjent ennå.

Trinn 5:  Godkjenning av CSR-sertifikater

CSR-sertifikatets status er fortsatt under behandling. Så i dette tilfellet vil vi sende en forespørsel til Kubernetes' API for å godkjenne CSR-sertifikatet. Vi kjører denne kommandoen for godkjenning:

> kubectl-sertifikat godkjenne my-svc .my-namespace

Kommandoen viser utdata etter utførelse. En autorisert person, for eksempel Kubernetes-administrasjonen, godkjenner CSR-sertifikatet. Siden vi er autoriserte brukere, lager vi YAML-filer. Som et resultat kan CSR-sertifikatet enkelt godkjennes ved hjelp av kommandoen, som vist på skjermbildet nedenfor for avklaring.

my-svc.my-namespace er godkjent gjennom certificates.k8s.io API.

Trinn 6: Hent CSR-sertifikatet i Kubernetes

Vi venter nå på om CSR-sertifikatet er godkjent. Så vi kjører kommandoen for å få en liste over alle CSR-sertifikater som for øyeblikket er aktive i systemet. Kjør kommandoen:

> kubectl få csr

Navnet på det godkjente CSR-sertifikatet i Kubernetes vises i vedlagte skjermbilde. Denne kommandoen returnerer navn, alder, underskrivernavn, forespørsel, forespurt varighet og tilstand for CSR-sertifikatet.

Trinn 7: Signer sertifikatet av opprettende myndighet

I dette trinnet vil vi se hvordan sertifikater signeres i Kubernetes. SSL-sertifikatet er godkjent, men ikke signert ennå. Navnet på underskriveren vises på sertifikatet i Kubernetes. Vi kjører kommandoen som den forespurte signeren signerer sertifikatet gjennom. Kommandoen er:

> katt << EOF | cfssl genart -initca - | cfssljson – bar ca

{

'CN' : 'Min eksempelunderskriver' ,
'nøkkel' : {
'noe' : 'rsa' ,
'størrelse' : 2048
}


}

EOF

Kommandoen kjøres for å signere sertifikatet digitalt. Signer signerer de forespurte sertifikatene og oppdaterer API-statusen med kommandoen 'SSL-sertifikat.' Vi opprettet et signeringssertifikat ved å kjøre kommandoen ovenfor, og resultatet vises i vedlagte skjermbilde. Et unikt serienummer har blitt brukt til å signere sertifikatet.

Trinn 8:  Opprett en JSON-fil for å utstede et sertifikat

Etter sertifikatsigneringen lager vi en JSON-fil som vi utsteder et sertifikat fra. Vi vil opprette en JSON-fil ved å kjøre følgende kommando med vedlagte skjermbilde:

> nano signeringfile.json

Etter at kommandoen er utført, opprettes JSON-filen som kan ses på skjermbildet nedenfor.

Trinn 9:  Bruk Server-Signing-config.json

I dette trinnet bruker vi server-signing-config-filen som er i JSON for å signere og utstede sertifikatene. Vi kjører kommandoen for sertifikatsignering med en privat nøkkelfil.

> kubectl få csr my-svc.my-namespace -De jsonpath =' { .spec.request } | \ base64 --dekode | \ cfssl tegn -at ca.pem -ca ca-nøkkel ca-key.pem -konfig server-signering-config.json | \ cfssljson -bare ca-signert-server

Etter denne kommandoen signeres sertifikatet som allerede er definert i json-filen. Serienummeret til denne CSR genereres. Her genererer vi en signert serveringssertifikatfil kalt 'ca-signed-server.pem.'

Trinn 10: Signert sertifikatopplasting i API-objekt

I dette trinnet laster vi opp det signerte sertifikatet til den ventende API-statusen som vi så ovenfor. Kommandoen for opplasting er:

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

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

> kubectl erstatte --rå / apis / sertifikater.k8s.io / v1 / sertifikatsigneringsforespørsler / my-svc.my-   navneområde / status -f -

Når denne kommandoen utføres, lastes det signerte sertifikatet opp når CSR-en godkjennes. Skjermbildet vedlagt ovenfor viser oss et JSON-format som laster opp det signerte sertifikatet som API-objekter.

Trinn 11: Få godkjente sertifikater i Kubernetes

Vi kjører igjen kommandoen for å vise de godkjente sertifikatene i Kubernetes.

> kubectl få csr

Sertifikatet ble godkjent og vellykket utstedt, som vist på skjermbildet ovenfor.

Trinn 12: Lagre sertifikatet i systemet

I dette trinnet lærer vi hvordan du laster ned det signerte sertifikatet og bruker det vellykket i systemet vårt. Vi distribuerer enkelt sertifikatet på serveren. Kommandoen er:

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

| base64 --dekode > server.crt

Trinn 13:  Fyll ut sertifikatet

I dette trinnet lærer vi hvordan du fyller ut sertifikatet på serveren slik at vi enkelt kan bruke sertifikatet for nettsikkerhet. Vi kjører kommandoen:

Kalsoom @ Kalsoom > kubectl opprette hemmelig tls-server --sert server.crt --nøkkel server-nøkkel.pem

Det vedlagte skjermbildet ovenfor viser oss at TLS sikker eller hemmelig server er opprettet vellykket med navnet cert server.cr og har privat nøkkel server-key.pem.

Trinn 14: Konfigurer Kartlegg sertifikatet

I dette trinnet vil vi konfigurere sertifikatet for å sikre at det er et sikkert serveringssertifikat ved å kjøre kommandoen nedenfor:

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

Som vist i det vedlagte skjermbildet, er konfigurasjonskartet/eksempel-serving-ca opprettet i Kubernetes for en sikker tilkobling på webserveren.

Konklusjon

SSL-sertifikater brukes for å gi sikkerhet til Kubernetes-applikasjoner på webserveren. Vi forklarte hvert trinn i detalj for din forståelse. Du kan også kjøre de samme kommandoene på Kubernetes-applikasjonen for å installere SSL-sertifikatet.