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-namespacePerintah 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 csrNama 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.jsonSelepas 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.