Tambahkan Sijil SSL/TLS pada Kluster Kubernetes

Tambahkan Sijil Ssl Tls Pada Kluster Kubernetes



Sijil SSL digunakan untuk melindungi aplikasi yang dibuat pada Kubernetes untuk keselamatan masa hadapan. Marilah kami mengambil satu lagi sijil selamat, TLS, yang mengandungi kunci peribadi yang sangat selamat. Sijil dibuat dengan sijil:  API K8r.io. Kami akan mengajar tentang konfigurasi sijil SSL dengan bantuan contoh terperinci. Mari kita mulakan dengan sijil SSL dalam Kubernetes. Sijil SSL sangat penting untuk penyemak imbas. Penyemak imbas, dengan bantuan sijil SSL dan TLS, mencipta sambungan selamat dengan perkhidmatan Kubernetes.

Pra-syarat:

Setiap pengguna mesti mempunyai versi terkini sistem Ubuntu mereka. Pengguna sistem pengendalian Windows memasang kotak maya dan menambah Ubuntu atau Linux secara maya pada sistem. Pengguna mesti biasa dengan Kubernetes, baris arahan kubectl, pod dan kluster serta mengetahui DNS kluster untuk memahami topik ini dengan lebih baik.







Mari kita lihat secara ringkas konfigurasi sijil SSL dalam Kubernetes dengan memecahkan keseluruhan prosedur kepada langkah yang berbeza.



Langkah 1: Mulakan Panel Kawalan Kubernetes

Kami mahukan persekitaran dalam aplikasi kami di mana kami boleh menjalankan perintah Kubernetes untuk melaksanakan tugas Kubernetes. Hasilnya, Kubernetes menyediakan kami bekas berasaskan tempatan yang dipanggil 'minikube.' Pada setiap permulaan aplikasi Kubernetes, kami akan memulakan minikube dalam Kubernetes, yang pada asasnya merupakan terminal, yang diperlukan untuk menjalankan arahan Kubernetes. Dalam langkah ini, kami menjalankan arahan untuk memulakan Minikube, iaitu:



> mulakan minikube

Apabila kami menjalankan arahan ini pada terminal sistem kami, pelaksanaan arahan bermula dengan menekan butang masukkan. Perintah tersebut menunjukkan kepada kami hasil tangkapan skrin yang dilampirkan di bawah sebagai balasan.





Langkah 2: Jana Permintaan Menandatangani Sijil

Selepas mencipta kluster dengan menggunakan Minikube, kami kini ingin membuat permintaan menandatangani sijil. Sebagai pertukaran untuk tindakan ini, kami menjalankan perintah untuk menandatangani permintaan sijil dan menjana kunci peribadi.



> kucing << EOF | cfssl genkey - | cfssljson -hanya pelayan

Selepas pelaksanaan pertanyaan, permintaan itu berjaya dijana dengan kunci persendirian. Hasilnya dilampirkan di atas sebagai tangkapan skrin.

Langkah 3: Buat Manifes Permintaan Menandatangani Sijil dalam Fail YAML

Dalam langkah ini, kami akan mencipta manifes fail YAML untuk mencipta CSR dalam Kubernetes. Kami menjalankan arahan di bawah:

> kucing << EOF | kubectl memohon -f

Berikutan pelaksanaan arahan ini, fail YAML berjaya dibuat. Dan kami menghantarnya ke pelayan API, seperti yang ditunjukkan dalam tangkapan skrin yang dilampirkan.

Langkah 4:  Dapatkan Status Permintaan Menandatangani Sijil

Dalam langkah ini, kita akan melihat status CSR seperti yang dilihat melalui API. Kita boleh menjalankan arahan yang diberikan untuk mendapatkan semula status permintaan sijil.

> kubectl terangkan csv my-svc.my-namespace

Apabila arahan dijalankan, status CSR dipaparkan dalam output, seperti yang ditunjukkan dalam tangkapan skrin yang dilampirkan. Status CSR adalah 'belum selesai', dan status ini datang daripada API. Nama fail ialah my-svc. ruang nama saya dan anotasi, meminta pengguna dan subjek, nama alternatif subjek yang mempunyai nama DNS dan alamat IP, acara, dsb. disertakan dalam huraian CSR. Status 'belum selesai', yang bermaksud sijil CSR belum diluluskan lagi.

Langkah 5:  Kelulusan Sijil CSR

Status sijil CSR masih belum selesai. Jadi, dalam kes ini, kami akan menghantar pertanyaan kepada API Kubernetes untuk meluluskan sijil CSR. Kami menjalankan arahan ini untuk kelulusan:

> sijil kubectl meluluskan my-svc .my-namespace

Perintah menunjukkan output selepas pelaksanaan. Orang yang diberi kuasa, seperti pentadbiran Kubernetes, meluluskan sijil CSR. Memandangkan kami adalah pengguna yang dibenarkan, kami mencipta fail YAML. Akibatnya, sijil CSR diluluskan dengan mudah menggunakan arahan, seperti yang ditunjukkan dalam tangkapan skrin di bawah untuk penjelasan.

my-svc.my-namespace berjaya diluluskan melalui API certificates.k8s.io.

Langkah 6: Ambil Sijil CSR dalam Kubernetes

Kami kini menunggu untuk melihat sama ada sijil CSR telah diluluskan. Jadi, kami akan menjalankan arahan untuk mendapatkan senarai semua sijil CSR yang sedang aktif dalam sistem. Jalankan arahan:

> kubectl dapatkan csr

Nama sijil CSR yang diluluskan dalam Kubernetes ditunjukkan dalam tangkapan skrin yang dilampirkan. Perintah ini mengembalikan nama, umur, nama penandatangan, peminta, tempoh yang diminta dan syarat sijil CSR.

Langkah 7: Tandatangan Sijil dengan Mencipta Kuasa

Dalam langkah ini, kita akan melihat cara sijil ditandatangani dalam Kubernetes. Sijil SSL diluluskan tetapi belum ditandatangani. Nama penandatangan muncul pada sijil dalam Kubernetes. Kami menjalankan arahan di mana penandatangan yang diminta menandatangani sijil. Perintahnya ialah:

> kucing << EOF | cfssl genart -initca - | cfssljson – telanjang ca

{

'CN' : 'Penandatangan Contoh Saya' ,
'kunci' : {
'sesuatu' : 'rsa' ,
'saiz' : 2048
}


}

EOF

Perintah dijalankan untuk menandatangani sijil secara digital. Penandatangan menandatangani sijil yang diminta dan mengemas kini status API dengan arahan, 'Sijil SSL.' Kami mencipta sijil menandatangani dengan menjalankan arahan di atas dan hasilnya ditunjukkan dalam tangkapan skrin yang dilampirkan. Nombor siri unik telah berjaya digunakan untuk menandatangani sijil.

Langkah 8:  Buat Fail JSON untuk Mengeluarkan Sijil

Selepas menandatangani sijil, kami mencipta fail JSON yang mengeluarkan sijil daripadanya. Kami akan membuat fail JSON dengan menjalankan arahan berikut dengan tangkapan skrin yang dilampirkan:

> nano signingfile.json

Selepas arahan dilaksanakan, fail JSON dibuat seperti yang boleh dilihat dalam tangkapan skrin di bawah.

Langkah 9:  Gunakan Server-Signing-config.json

Dalam langkah ini, kami menggunakan fail server-signing-config yang ada dalam JSON untuk menandatangani dan mengeluarkan sijil. Kami menjalankan arahan untuk menandatangani sijil dengan fail kunci peribadi.

> kubectl dapatkan csr my-svc.my-namespace -The jsonpath =' { .spec.request } ' | \ asas64 --nyahkod | \ tanda cfssl -itu ca.pem -ca ca-key ca-key.pem -config server-signing-config.json | \ cfssljson -hanya pelayan-ca-tandatangan

Selepas arahan ini, sijil yang telah ditakrifkan dalam fail json ditandatangani. Nombor siri CSR ini dijana. Di sini, kami menjana fail sijil penyajian yang ditandatangani bernama 'ca-signed-server.pem.'

Langkah 10: Muat Naik Sijil yang Ditandatangani dalam Objek API

Dalam langkah ini, kami memuat naik sijil yang ditandatangani ke status API belum selesai yang kami lihat di atas. Perintah untuk memuat naik ialah:

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

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

> ganti kubectl --mentah / apis / certificates.k8s.io / v1 / permintaan penandatanganan sijil / my-svc.my-   ruang nama / status -f -

Apabila arahan ini dilaksanakan, sijil yang ditandatangani berjaya dimuat naik apabila CSR diluluskan. Tangkapan skrin yang dilampirkan di atas menunjukkan kepada kami format JSON yang memuat naik sijil yang ditandatangani sebagai objek API.

Langkah 11: Dapatkan Sijil yang Diluluskan dalam Kubernetes

Kami sekali lagi menjalankan arahan untuk menunjukkan sijil yang diluluskan dalam Kubernetes.

> kubectl dapatkan csr

Sijil telah diluluskan dan berjaya dikeluarkan, seperti yang ditunjukkan dalam tangkapan skrin di atas.

Langkah 12: Simpan Sijil dalam Sistem

Dalam langkah ini, kami akan mempelajari cara memuat turun sijil yang ditandatangani dan menggunakannya dengan jayanya dalam sistem kami. Kami dengan mudah menggunakan sijil pada pelayan. Perintahnya ialah:

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

| asas64 --nyahkod > pelayan.crt

Langkah 13:  Isi Sijil

Dalam langkah ini, kami akan belajar cara mengisi sijil pada pelayan supaya kami boleh menggunakan sijil untuk keselamatan web dengan mudah. Kami menjalankan arahan:

Kalsoom @ Kalsoom > kubectl cipta pelayan tls rahsia --sijil pelayan.crt --kunci kunci pelayan.pem

Tangkapan skrin yang dilampirkan di atas menunjukkan kepada kami bahawa pelayan selamat atau rahsia TLS berjaya dibuat dengan pelayan sijil nama.cr dan mempunyai kunci peribadi server-key.pem.

Langkah 14: Peta Konfig Sijil

Dalam langkah ini, kami akan mengkonfigurasi sijil untuk memastikan bahawa ia adalah sijil penyajian yang selamat dengan menjalankan arahan di bawah:

> kubectl buat configmap example-serving-ca --dari-fail ca.crt=ca.pem

Seperti yang ditunjukkan dalam tangkapan skrin yang dilampirkan, peta konfigurasi/example-serving-ca berjaya dibuat dalam Kubernetes untuk sambungan selamat pada pelayan web.

Kesimpulan

Sijil SSL digunakan untuk menyediakan keselamatan kepada aplikasi Kubernetes pada pelayan web. Kami menerangkan setiap langkah secara terperinci untuk pemahaman anda. Anda juga boleh menjalankan arahan yang sama pada aplikasi Kubernetes anda untuk memasang sijil SSL.