Magdagdag ng SSL/TLS Certificate sa Kubernetes Cluster

Magdagdag Ng Ssl Tls Certificate Sa Kubernetes Cluster



Ginagamit ang mga SSL certificate para ma-secure ang application na ginawa sa Kubernetes para sa kaligtasan sa hinaharap. Kumuha tayo ng isa pang secure na certificate, TLS, na naglalaman ng napakasecure na pribadong key. Ginagawa ang mga certificate gamit ang mga certificate:  K8r.io API. Ituturo namin ang tungkol sa pagsasaayos ng SSL certificate sa tulong ng mga detalyadong halimbawa. Magsimula tayo sa SSL certificate sa Kubernetes. Napakahalaga ng mga SSL certificate para sa mga browser. Ang browser, sa tulong ng SSL at TLS certificate, ay lumilikha ng secure na koneksyon sa mga serbisyo ng Kubernetes.

Mga kinakailangan:

Ang bawat user ay dapat magkaroon ng pinakabagong bersyon ng kanilang system ng Ubuntu. Ang gumagamit ng Windows operating system ay nag-i-install ng isang virtual na kahon at nagdaragdag ng Ubuntu o Linux halos sa system. Dapat pamilyar ang mga user sa Kubernetes, ang kubectl command line, pod, at cluster, at alam ang cluster DNS para mas maunawaan ang paksang ito.







Tingnan natin ang pagsasaayos ng SSL certificate sa Kubernetes sa pamamagitan ng paghahati sa buong pamamaraan sa iba't ibang hakbang.



Hakbang 1: Simulan ang Kubernetes Control Panel

Gusto namin ng kapaligiran sa aming application kung saan maaari naming patakbuhin ang mga Kubernetes command upang maisagawa ang mga gawain ng Kubernetes. Bilang resulta, binibigyan kami ng Kubernetes ng isang lokal na container na tinatawag na 'minikube.' Sa bawat pagsisimula ng Kubernetes application, magsisimula kami ng minikube sa Kubernetes, na karaniwang isang terminal, na kinakailangan para sa pagpapatakbo ng mga Kubernetes command. Sa hakbang na ito, pinapatakbo namin ang command upang simulan ang Minikube, na:



> simulan ang minikube

Kapag pinatakbo namin ang command na ito sa aming terminal ng system, magsisimula ang pagpapatupad ng command sa pamamagitan ng pagpindot sa enter button. Ang utos ay nagpapakita sa amin ng isang nakalakip na resulta ng screenshot sa ibaba bilang kapalit.





Hakbang 2: Bumuo ng Kahilingan sa Pagpirma ng Sertipiko

Pagkatapos gumawa ng cluster sa pamamagitan ng paggamit ng Minikube, gusto na naming gumawa ng kahilingan sa pagpirma ng certificate. Bilang kapalit ng pagkilos na ito, pinapatakbo namin ang command para sa pagpirma sa kahilingan sa certificate at pagbuo ng pribadong key.



> pusa << EOF | cfssl genkey - | cfssljson -basta server

Pagkatapos ng pagpapatupad ng query, matagumpay na nabuo ang kahilingan gamit ang pribadong key. Ang resulta ay naka-attach sa itaas bilang isang screenshot.

Hakbang 3: Gumawa ng Manifest ng Kahilingan sa Pagpirma ng Certificate sa YAML File

Sa hakbang na ito, gagawa kami ng manifest ng YAML file para sa paggawa ng CSR sa Kubernetes. Pinapatakbo namin ang utos sa ibaba:

> pusa << EOF | kubectl apply -f

Kasunod ng pagpapatupad ng command na ito, matagumpay na nalikha ang isang YAML file. At ipinapadala namin ito sa server ng API, tulad ng ipinapakita sa nakalakip na screenshot.

Hakbang 4:  Kumuha ng Status ng Kahilingan sa Pagpirma ng Certificate

Sa hakbang na ito, titingnan natin ang katayuan ng CSR na nakikita sa pamamagitan ng API. Maaari naming patakbuhin ang ibinigay na utos upang makuha ang katayuan ng kahilingan sa sertipiko.

> inilalarawan ng kubectl ang csv my-svc.my-namespace

Kapag ang command ay pinatakbo, ang CSR status ay ipinapakita sa output, tulad ng ipinapakita sa nakalakip na screenshot. Ang status ng CSR ay “nakabinbin,” at ang status na ito ay nagmumula sa API. Ang pangalan ng file ay my-svc. my-namespace at mga anotasyon, humihiling ng user at paksa, mga alternatibong pangalan ng paksa na may mga pangalan ng DNS at mga IP address, mga kaganapan, atbp. ay kasama sa paglalarawan ng CSR. Ang status ay “nakabinbin,” na nangangahulugang hindi pa naaaprubahan ang CSR certificate.

Hakbang 5:  Pag-apruba sa Mga Certificate ng CSR

Nakabinbin pa rin ang status ng CSR certificate. Kaya, sa kasong ito, magpapadala kami ng query sa Kubernetes' API para aprubahan ang CSR certificate. Pinapatakbo namin ang utos na ito para sa pag-apruba:

> inaprubahan ng kubectl certificate ang my-svc .my-namespace

Ang utos ay nagpapakita ng output pagkatapos ng pagpapatupad. Ang isang awtorisadong tao, gaya ng administrasyong Kubernetes, ay nag-aapruba sa CSR certificate. Dahil kami ay mga awtorisadong user, gumagawa kami ng mga YAML file. Bilang resulta, ang CSR certificate ay madaling maaprubahan gamit ang command, tulad ng ipinapakita sa screenshot sa ibaba para sa paglilinaw.

Matagumpay na naaprubahan ang my-svc.my-namespace sa pamamagitan ng certificates.k8s.io API.

Hakbang 6: Kunin ang CSR Certificate sa Kubernetes

Naghihintay kami ngayon upang makita kung ang sertipiko ng CSR ay naaprubahan. Kaya, patakbuhin namin ang utos upang makakuha ng isang listahan ng lahat ng mga sertipiko ng CSR na kasalukuyang aktibo sa system. Patakbuhin ang utos:

> kubectl kumuha ng csr

Ang pangalan ng naaprubahang CSR certificate sa Kubernetes ay ipinapakita sa naka-attach na screenshot. Ibinabalik ng command na ito ang pangalan, edad, pangalan ng lumagda, humiling, hiniling na tagal, at kundisyon ng CSR certificate.

Hakbang 7: Lagdaan ang Sertipiko sa pamamagitan ng Paglikha ng Awtoridad

Sa hakbang na ito, makikita natin kung paano nilalagdaan ang mga certificate sa Kubernetes. Ang SSL certificate ay naaprubahan ngunit hindi pa nalagdaan. Ang pangalan ng pumirma ay lumalabas sa sertipiko sa Kubernetes. Pinapatakbo namin ang utos kung saan nilalagdaan ng hiniling na lumagda ang sertipiko. Ang utos ay:

> pusa << EOF | cfssl genart -initca - | cfssljson – hubad ca

{

'CN' : 'Ang Aking Halimbawang Lumagda' ,
'susi' : {
'isang bagay' : 'rsa' ,
'laki' : 2048
}


}

EOF

Ang utos ay pinapatakbo upang pirmahan ang sertipiko nang digital. Pinirmahan ng lumagda ang mga hiniling na certificate at ina-update ang status ng API gamit ang command, “SSL certificate.” Gumawa kami ng signing certificate sa pamamagitan ng pagpapatakbo ng command sa itaas at ang resulta ay ipinapakita sa nakalakip na screenshot. Matagumpay na nagamit ang isang natatanging serial number para lagdaan ang sertipiko.

Hakbang 8:  Gumawa ng JSON File para Mag-isyu ng Certificate

Pagkatapos ng paglagda ng certificate, gumawa kami ng JSON file kung saan nag-isyu kami ng certificate. Gagawa kami ng JSON file sa pamamagitan ng pagpapatakbo ng sumusunod na command kasama ang naka-attach na screenshot:

> nano signingfile.json

Matapos maisakatuparan ang utos, gagawin ang JSON file na makikita sa screenshot sa ibaba.

Hakbang 9:  Gamitin ang Server-Signing-config.json

Sa hakbang na ito, ginagamit namin ang server-signing-config file na nasa JSON para lagdaan at ibigay ang mga certificate. Pinapatakbo namin ang utos para sa pagpirma ng sertipiko gamit ang isang pribadong key file.

> kubectl kumuha ng csr my-svc.my-namespace -Ang jsonpath =' { .spec.request } ' | \ base64 --decode | \ cfssl sign -yan ca.pem -ca ca-key ca-key.pem -config server-signing-config.json | \ cfssljson -basta ca-sign-server

Pagkatapos ng utos na ito, ang sertipiko na tinukoy na sa json file ay nilagdaan. Ang serial number ng CSR na ito ay nabuo. Dito, bumubuo kami ng nilagdaang file ng certificate ng paghahatid na pinangalanang 'ca-signed-server.pem.'

Hakbang 10: Nilagdaan ang Pag-upload ng Certificate sa API Object

Sa hakbang na ito, ina-upload namin ang nilagdaang certificate sa nakabinbing status ng API na nakita namin sa itaas. Ang utos para sa pag-upload ay:

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

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

> palitan ng kubectl --hilaw / apis / certificates.k8s.io / v1 / mga kahilingan sa pagpirma ng sertipiko / my-svc.my-   namespace / katayuan -f -

Kapag naisakatuparan ang utos na ito, matagumpay na na-upload ang pinirmahang sertipiko kapag naaprubahan ang CSR. Ang screenshot na nakalakip sa itaas ay nagpapakita sa amin ng JSON na format na nag-a-upload ng nilagdaang certificate bilang mga object ng API.

Hakbang 11: I-enlist ang Mga Naaprubahang Sertipiko sa Kubernetes

Muli naming pinapatakbo ang command na ipakita ang mga naaprubahang certificate sa Kubernetes.

> kubectl kumuha ng csr

Ang sertipiko ay naaprubahan at matagumpay na naibigay, tulad ng ipinapakita sa screenshot sa itaas.

Hakbang 12: I-save ang Sertipiko sa System

Sa hakbang na ito, matututunan namin kung paano i-download ang nilagdaang certificate at matagumpay na gamitin ito sa aming system. Madali naming i-deploy ang certificate sa server. Ang utos ay:

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

| base64 --decode > server.crt

Hakbang 13:  I-populate ang Certificate

Sa hakbang na ito, matututunan natin kung paano i-populate ang certificate sa server para madali nating magamit ang certificate para sa web security. Pinapatakbo namin ang utos:

Kalsoom @ Kalsoom > kubectl lumikha ng lihim na tls server --cert server.crt --susi server-key.pem

Ipinapakita sa amin ng naka-attach na screenshot sa itaas na matagumpay na nalikha ang TLS secure o sikretong server gamit ang name cert server.cr at pagkakaroon ng pribadong key server-key.pem.

Hakbang 14: Config Map ang Certificate

Sa hakbang na ito, iko-configure namin ang certificate upang matiyak na ito ay isang secure na certificate ng paghahatid sa pamamagitan ng pagpapatakbo ng command sa ibaba:

> kubectl lumikha ng configmap example-serving-ca --mula sa file ca.crt=ca.pem

Gaya ng ipinapakita sa naka-attach na screenshot, matagumpay na nalikha ang config map/example-serving-ca sa Kubernetes para sa secure na koneksyon sa web server.

Konklusyon

Ginagamit ang mga SSL certificate para sa pagbibigay ng seguridad sa mga Kubernetes application sa web server. Ipinaliwanag namin ang bawat hakbang-sa detalye para sa iyong pang-unawa. Maaari mo ring patakbuhin ang parehong mga command sa iyong Kubernetes application para i-install ang SSL certificate.