Kubernetes کلسٹر میں SSL/TLS سرٹیفکیٹ شامل کریں۔

Kubernetes Kls R My Ssl Tls Sr Yfky Shaml Kry



SSL سرٹیفکیٹس کا استعمال اس ایپلیکیشن کو محفوظ کرنے کے لیے کیا جاتا ہے جو مستقبل کی حفاظت کے لیے Kubernetes پر بنائی گئی ہے۔ آئیے ایک اور محفوظ سرٹیفکیٹ لیں، TLS، جس میں ایک انتہائی محفوظ نجی کلید ہے۔ سرٹیفکیٹس سرٹیفکیٹس کے ساتھ بنائے جاتے ہیں: K8r.io API۔ ہم تفصیلی مثالوں کی مدد سے SSL سرٹیفکیٹ کنفیگریشن کے بارے میں سکھائیں گے۔ آئیے Kubernetes میں SSL سرٹیفکیٹ کے ساتھ شروع کریں۔ SSL سرٹیفکیٹ براؤزرز کے لیے بہت اہم ہیں۔ براؤزر، SSL اور TLS سرٹیفکیٹس کی مدد سے، Kubernetes سروسز کے ساتھ ایک محفوظ کنکشن بناتا ہے۔

پیشگی شرائط:

ہر صارف کے پاس اپنے سسٹم کا Ubuntu کا تازہ ترین ورژن ہونا ضروری ہے۔ ونڈوز آپریٹنگ سسٹم کا صارف ایک ورچوئل باکس انسٹال کرتا ہے اور اوبنٹو یا لینکس کو ورچوئل طور پر سسٹم میں شامل کرتا ہے۔ اس موضوع کو بہتر طور پر سمجھنے کے لیے صارفین کو Kubernetes، kubectl کمانڈ لائن، پوڈز، اور کلسٹرز سے واقف ہونا چاہیے، اور کلسٹر DNS کو جاننا چاہیے۔







آئیے ہم تمام طریقہ کار کو مختلف مراحل میں توڑ کر Kubernetes میں SSL سرٹیفکیٹ کی ترتیب پر ایک مختصر نظر ڈالتے ہیں۔



مرحلہ 1: کبرنیٹس کنٹرول پینل شروع کریں۔

ہم اپنی درخواست میں ایک ایسا ماحول چاہتے ہیں جہاں ہم Kubernetes کے کاموں کو انجام دینے کے لیے Kubernetes کمانڈ چلا سکیں۔ نتیجے کے طور پر، Kubernetes ہمیں ایک مقامی کنٹینر فراہم کرتا ہے جسے 'minikube' کہا جاتا ہے۔ ہر Kubernetes ایپلیکیشن شروع ہونے پر، ہم Kubernetes میں ایک minikube شروع کریں گے، جو بنیادی طور پر ایک ٹرمینل ہے، جو Kubernetes کمانڈ چلانے کے لیے ضروری ہے۔ اس مرحلے میں، ہم Minikube کو شروع کرنے کے لیے کمانڈ چلاتے ہیں، جو یہ ہے:



> منی کیوب شروع کریں۔

جب ہم اس کمانڈ کو اپنے سسٹم ٹرمینل پر چلاتے ہیں، تو کمانڈ کا عمل انٹر بٹن دبانے سے شروع ہوتا ہے۔ کمانڈ ہمیں بدلے میں ذیل میں منسلک اسکرین شاٹ کا نتیجہ دکھاتی ہے۔





مرحلہ 2: سرٹیفکیٹ پر دستخط کرنے کی درخواست تیار کریں۔

Minikube استعمال کرکے کلسٹر بنانے کے بعد، اب ہم سرٹیفکیٹ پر دستخط کرنے کی درخواست بنانا چاہتے ہیں۔ اس کارروائی کے بدلے میں، ہم سرٹیفکیٹ کی درخواست پر دستخط کرنے اور نجی کلید بنانے کے لیے کمانڈ چلاتے ہیں۔



> کیٹ << ای او ایف | cfssl genkey - | cfssljson -صرف سرور

استفسار پر عمل درآمد کے بعد، درخواست کامیابی کے ساتھ نجی کلید کے ساتھ تیار ہو جاتی ہے۔ نتیجہ اوپر اسکرین شاٹ کے طور پر منسلک ہے۔

مرحلہ 3: YAML فائل میں سرٹیفکیٹ پر دستخط کرنے کی درخواست مینی فیسٹ بنائیں

اس مرحلے میں، ہم Kubernetes میں CSR بنانے کے لیے YAML فائل مینی فیسٹ بنائیں گے۔ ہم ذیل میں کمانڈ چلاتے ہیں:

> کیٹ << ای او ایف | kubectl لاگو کریں -f -

اس کمانڈ پر عمل درآمد کے بعد، ایک YAML فائل کامیابی کے ساتھ بنائی گئی ہے۔ اور ہم اسے API سرور پر بھیجتے ہیں، جیسا کہ منسلک اسکرین شاٹ میں دکھایا گیا ہے۔

مرحلہ 4: سرٹیفکیٹ پر دستخط کرنے کی درخواست کی حیثیت حاصل کریں۔

اس مرحلے میں، ہم CSR کی حیثیت کو دیکھیں گے جیسا کہ API کے ذریعے دیکھا گیا ہے۔ ہم سرٹیفکیٹ کی درخواست کی حیثیت کو بازیافت کرنے کے لئے دی گئی کمانڈ کو چلا سکتے ہیں۔

> kubectl describe csv my-svc.my-namespace

جب کمانڈ چلائی جاتی ہے، CSR اسٹیٹس آؤٹ پٹ میں ظاہر ہوتا ہے، جیسا کہ منسلک اسکرین شاٹ میں دکھایا گیا ہے۔ CSR کی حیثیت 'زیر التواء' ہے اور یہ حیثیت API سے آرہی ہے۔ فائل کا نام my-svc ہے۔ my-namespace اور تشریحات، درخواست کرنے والے صارف اور موضوع، موضوع کے متبادل نام جن میں DNS نام اور IP پتے، واقعات وغیرہ CSR کی تفصیل میں شامل ہیں۔ حیثیت 'زیر التواء' ہے، جس کا مطلب ہے کہ CSR سرٹیفکیٹ ابھی تک منظور نہیں ہوا ہے۔

مرحلہ 5: CSR سرٹیفکیٹس کی منظوری

CSR سرٹیفکیٹ کی حیثیت ابھی زیر التوا ہے۔ لہذا، اس صورت میں، ہم CSR سرٹیفکیٹ کو منظور کرنے کے لیے Kubernetes کے API کو ایک سوال بھیجیں گے۔ ہم منظوری کے لیے یہ کمانڈ چلاتے ہیں:

> kubectl سرٹیفکیٹ my-svc .my-namespace کو منظور کرتا ہے۔

کمانڈ عمل درآمد کے بعد آؤٹ پٹ کو دکھاتا ہے۔ ایک مجاز شخص، جیسا کہ Kubernetes انتظامیہ، CSR سرٹیفکیٹ کی منظوری دیتا ہے۔ چونکہ ہم مجاز صارف ہیں، ہم YAML فائلیں بناتے ہیں۔ نتیجے کے طور پر، CSR سرٹیفکیٹ کو کمانڈ کا استعمال کرتے ہوئے آسانی سے منظور کیا جاتا ہے، جیسا کہ وضاحت کے لیے نیچے اسکرین شاٹ میں دکھایا گیا ہے۔

my-svc.my-namespace سرٹیفیکیٹس.k8s.io API کے ذریعے کامیابی سے منظور شدہ ہے۔

مرحلہ 6: Kubernetes میں CSR سرٹیفکیٹ حاصل کریں۔

اب ہم یہ دیکھنے کا انتظار کر رہے ہیں کہ آیا CSR سرٹیفکیٹ منظور ہو گیا ہے۔ لہذا، ہم ان تمام CSR سرٹیفکیٹس کی فہرست حاصل کرنے کے لیے کمانڈ چلائیں گے جو فی الحال سسٹم میں فعال ہیں۔ کمانڈ چلائیں:

> kubectl حاصل csr

Kubernetes میں منظور شدہ CSR سرٹیفکیٹ کا نام منسلک اسکرین شاٹ میں دکھایا گیا ہے۔ یہ کمانڈ CSR سرٹیفکیٹ کا نام، عمر، دستخط کنندہ کا نام، درخواست کنندہ، درخواست کی مدت، اور حالت واپس کرتا ہے۔

مرحلہ 7: اتھارٹی بنا کر سرٹیفکیٹ پر دستخط کریں۔

اس مرحلے میں، ہم دیکھیں گے کہ کبرنیٹس میں سرٹیفکیٹس پر دستخط کیسے کیے جاتے ہیں۔ SSL سرٹیفکیٹ منظور شدہ ہے لیکن ابھی تک دستخط نہیں ہوا ہے۔ دستخط کنندہ کا نام Kubernetes میں سرٹیفکیٹ پر ظاہر ہوتا ہے۔ ہم کمانڈ چلاتے ہیں جس کے ذریعے درخواست کردہ دستخط کنندہ سرٹیفکیٹ پر دستخط کرتا ہے۔ حکم ہے:

> کیٹ << ای او ایف | cfssl genart -initca - | cfssljson - ننگے ca

{

'CN' : 'میری مثال دستخط کنندہ' ،
'چابی' : {
'کچھ' : 'rsa' ،
'سائز' : 2048
}


}

ای او ایف

سرٹیفکیٹ پر ڈیجیٹل طور پر دستخط کرنے کے لیے کمانڈ چلائی جاتی ہے۔ دستخط کنندہ درخواست کردہ سرٹیفکیٹس پر دستخط کرتا ہے اور کمانڈ، 'SSL سرٹیفکیٹ' کے ساتھ API کی حیثیت کو اپ ڈیٹ کرتا ہے۔ ہم نے مندرجہ بالا کمانڈ کو چلا کر ایک دستخطی سرٹیفکیٹ بنایا اور نتیجہ منسلک اسکرین شاٹ میں دکھایا گیا ہے۔ سرٹیفکیٹ پر دستخط کرنے کے لیے ایک منفرد سیریل نمبر کامیابی کے ساتھ استعمال کیا گیا ہے۔

مرحلہ 8: سرٹیفکیٹ جاری کرنے کے لیے ایک JSON فائل بنائیں

سرٹیفکیٹ پر دستخط کرنے کے بعد، ہم ایک JSON فائل بناتے ہیں جس سے ہم سرٹیفکیٹ جاری کرتے ہیں۔ ہم منسلک اسکرین شاٹ کے ساتھ درج ذیل کمانڈ کو چلا کر JSON فائل بنائیں گے۔

> نینو signingfile.json

کمانڈ پر عمل درآمد کے بعد، JSON فائل بن جاتی ہے جیسا کہ نیچے اسکرین شاٹ میں دیکھا جا سکتا ہے۔

مرحلہ 9: Server-Signing-config.json استعمال کریں۔

اس مرحلے میں، ہم سرٹیفکیٹ پر دستخط کرنے اور جاری کرنے کے لیے سرور-سائننگ-config فائل کا استعمال کرتے ہیں جو JSON میں ہے۔ ہم ایک نجی کلید فائل کے ساتھ سرٹیفکیٹ پر دستخط کرنے کی کمانڈ چلاتے ہیں۔

> kubectl csr my-svc.my-namespace حاصل کریں۔ -دی jsonpath =' { .spec.request } ' | \ base64 --ڈی کوڈ | \cfssl نشان -وہ ca.pem -ca ca-key ca-key.pem تشکیل server-signing-config.json | \cfssljson -صرف ca-signed-server

اس کمانڈ کے بعد، سرٹیفکیٹ جو پہلے سے ہی json فائل میں بیان کیا گیا ہے دستخط کیا جاتا ہے. یہ CSR کا سیریل نمبر تیار ہوا ہے۔ یہاں، ہم 'ca-signed-server.pem' کے نام سے ایک دستخط شدہ سرونگ سرٹیفکیٹ فائل تیار کرتے ہیں۔

مرحلہ 10: API آبجیکٹ میں دستخط شدہ سرٹیفکیٹ اپ لوڈ کریں۔

اس مرحلے میں، ہم دستخط شدہ سرٹیفکیٹ کو زیر التواء API اسٹیٹس پر اپ لوڈ کرتے ہیں جسے ہم نے اوپر دیکھا ہے۔ اپ لوڈ کرنے کا حکم ہے:

> kubectl csr my-svc.my-namespace حاصل کریں۔ -دی json | \ jq '.status.certificate = '

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

> kubectl تبدیل کریں -- خام / apis / سرٹیفکیٹس.k8s.io / v1 / سرٹیفکیٹ پر دستخط کرنے کی درخواستیں / my-svc.my- نام کی جگہ / حالت -f -

جب اس کمانڈ پر عمل کیا جاتا ہے، دستخط شدہ سرٹیفکیٹ کامیابی کے ساتھ اپ لوڈ ہو جاتا ہے جب بھی CSR کی منظوری دی جاتی ہے۔ اوپر منسلک اسکرین شاٹ ہمیں JSON فارمیٹ دکھاتا ہے جو دستخط شدہ سرٹیفکیٹ کو API آبجیکٹ کے بطور اپ لوڈ کرتا ہے۔

مرحلہ 11: Kubernetes میں منظور شدہ سرٹیفکیٹس کی فہرست بنائیں

ہم دوبارہ Kubernetes میں منظور شدہ سرٹیفکیٹ دکھانے کے لیے کمانڈ چلاتے ہیں۔

> kubectl حاصل csr

جیسا کہ اوپر اسکرین شاٹ میں دکھایا گیا ہے، سرٹیفکیٹ منظور اور کامیابی کے ساتھ جاری کیا گیا تھا۔

مرحلہ 12: سرٹیفکیٹ کو سسٹم میں محفوظ کریں۔

اس مرحلے میں، ہم سیکھیں گے کہ کس طرح دستخط شدہ سرٹیفکیٹ کو ڈاؤن لوڈ کرنا ہے اور اسے اپنے سسٹم میں کامیابی کے ساتھ استعمال کرنا ہے۔ ہم آسانی سے سرٹیفکیٹ کو سرور پر تعینات کر دیتے ہیں۔ حکم ہے:

> kubectl csr my-svc.my-namespace حاصل کریں۔ -دی jsonpath = '{.status.certificate}' \

| base64 --ڈی کوڈ > server.crt

مرحلہ 13: سرٹیفکیٹ کو آباد کریں۔

اس مرحلے میں، ہم سرٹیفکیٹ کو سرور پر آباد کرنے کا طریقہ سیکھیں گے تاکہ ہم ویب سیکیورٹی کے لیے سرٹیفکیٹ کو آسانی سے استعمال کرسکیں۔ ہم کمانڈ چلاتے ہیں:

کلثوم @ کلثوم > kubectl خفیہ tls سرور بنائیں --سرٹیفکیٹ server.crt --چابی server-key.pem

اوپر منسلک اسکرین شاٹ ہمیں دکھاتا ہے کہ TLS محفوظ یا خفیہ سرور نام سرٹیفکیٹ server.cr اور پرائیویٹ کلید سرور-key.pem کے ساتھ کامیابی کے ساتھ بنایا گیا ہے۔

مرحلہ 14: سرٹیفکیٹ کا نقشہ ترتیب دیں۔

اس مرحلے میں، ہم ذیل میں کمانڈ کو چلا کر اس بات کو یقینی بنانے کے لیے سرٹیفکیٹ کو ترتیب دیں گے کہ یہ ایک محفوظ سرونگ سرٹیفکیٹ ہے:

> kubectl تشکیل نقشہ مثال-serving-ca بنائیں --from-file ca.crt=ca.pem

جیسا کہ منسلک اسکرین شاٹ میں دکھایا گیا ہے، ویب سرور پر محفوظ کنکشن کے لیے config map/example-serving-ca کامیابی کے ساتھ Kubernetes میں بنایا گیا ہے۔

نتیجہ

SSL سرٹیفکیٹ ویب سرور پر Kubernetes ایپلیکیشنز کو سیکیورٹی فراہم کرنے کے لیے استعمال کیے جاتے ہیں۔ ہم نے آپ کی سمجھ کے لیے ہر مرحلہ کی تفصیل بتائی۔ آپ SSL سرٹیفکیٹ کو انسٹال کرنے کے لیے اپنی Kubernetes ایپلیکیشن پر بھی وہی کمانڈ چلا سکتے ہیں۔