कुबेरनेट्स में एसीएमई एसएसएल प्रमाणपत्र स्थापित करना अब एक मानकीकृत और लचीली प्रक्रिया है, जो प्रमाणपत्र-प्रबंधक जैसे परिपक्व टूलिंग और वाणिज्यिक सीए से व्यापक समर्थन के लिए धन्यवाद है। चाहे आप NGINX Ingress, Traefik, या किसी अन्य गेटवे के पीछे प्रोडक्शन वर्कलोड चला रहे हों, आप पूर्ण नियंत्रण के साथ सुरक्षित HTTPS को स्वचालित कर सकते हैं।

यह मार्गदर्शिका आपको दिखाएगी कि प्रमाणपत्र-प्रबंधक का उपयोग करके कुबेरनेट्स में ACME SSL प्रमाणपत्र कैसे स्थापित किया जाए। हम स्थापना, बाहरी खाता बाध्यकारी (ईएबी) के साथ एक जारीकर्ता स्थापित करना, और आपकी प्रवेश सेवाओं की सुरक्षा के लिए प्रमाण पत्र जारी करना शामिल करेंगे।
आपको किस चीज़ की ज़रूरत पड़ेगी
गोता लगाने से पहले, सुनिश्चित करें:
- आपके पास एक कार्यशील कुबेरनेट्स क्लस्टर है (v1.23+ अनुशंसित)
kubectlकॉन्फ़िगर किया गया है और काम कर रहा है- आपके पास अपने प्रवेश नियंत्रक (जैसे, NGINX, Traefik) तक पहुंच है
- आपका डोमेन आपके प्रवेश नियंत्रक के सार्वजनिक आईपी को इंगित करता है
- आपके पास अपने एसीएमई-संगत सीए से ईएबी क्रेडेंशियल्स हैं:
- एसीएमई निर्देशिका यूआरएल (जैसे https://acme.example.com/v2/DV)
- EAB कुंजी पहचानकर्ता (KID)
- ईएबी एचएमएसी कुंजी
नोट: https://acme.example.com/v2/DV का उपयोग इस गाइड में प्लेसहोल्डर ACME निर्देशिका URL के रूप में किया जाता है। इसे अपने प्रमाणपत्र प्राधिकरण से वास्तविक समापन बिंदु से बदलें।
चरण 1 – प्रमाणपत्र-प्रबंधक स्थापित करें
cert-manager सबसे व्यापक रूप से इस्तेमाल किया जाने वाला कुबेरनेट्स-देशी एसीएमई क्लाइंट है। यह एक नियंत्रक के रूप में चलता है जो प्रमाणपत्र जारी करने और नवीनीकरण का प्रबंधन करता है।
हेल्म के माध्यम से स्थापित करें (उत्पादन के लिए पसंदीदा):
kubectl create namespace cert-manager
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--version v1.14.4 \
--set installCRDs=true
कुछ सेकंड प्रतीक्षा करें और पुष्टि करें कि सभी पॉड चल रहे हैं:
kubectl get pods -n cert-manager
आपको तीन पॉड्स देखने चाहिए: cert-manager, cert-manager-webhook, और cert-manager-cainjector।
चरण 2 – ईएबी क्रेडेंशियल्स के लिए कुबेरनेट्स सीक्रेट बनाएं
अपनी ईएबी कुंजी को सुरक्षित रूप से संग्रहीत करने के लिए कुबेरनेट्स रहस्य बनाएं:
kubectl create secret generic acme-eab-secret \
--namespace cert-manager \
--from-literal=eab-kid="YOUR_EAB_KID" \
--from-literal=eab-hmac-key="YOUR_EAB_HMAC_KEY"
अपने वास्तविक क्रेडेंशियल्स के साथ स्थानापन्न करें। कॉपी-पेस्ट व्हाइटस्पेस से बचें।
चरण 3 – ClusterIssuer या जारीकर्ता को परिभाषित करें
अब, एक ClusterIssuer (सभी नामस्थानों के लिए) या जारीकर्ता (एकल नामस्थान) संसाधन जो cert-manager EAB क्रेडेंशियल्स का उपयोग करके आपके ACME CA से कनेक्ट करता है।
यहाँ एक नमूना ClusterIssuer YAML है:
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: acme-issuer
spec:
acme:
server: https://your.acme-server.com/v2/DV
email: [email protected]
privateKeySecretRef:
name: acme-private-key
externalAccountBinding:
keyID: YOUR_EAB_KID
keySecretRef:
name: acme-eab-secret
key: eab-hmac-key
solvers:
- http01:
ingress:
class: nginx
इसे लागू करें:
kubectl apply -f clusterissuer.yaml
बदलें ingress.class: nginx को traefik, nginx-internal, या जो भी आपका प्रवेश वर्ग है। आप इसे अपने प्रवेश नियंत्रक प्रलेखन में पा सकते हैं।
चरण 4 – एक प्रमाणपत्र संसाधन बनाएँ
एक बार जब आपका ClusterIssuer तैयार हो जाता है, तो एक प्रमाणपत्र संसाधन बनाएँ जो cert-manager को बताता है कि किस डोमेन को सुरक्षित करना है. यहाँ एक उदाहरण है:
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: my-ssl-cert
namespace: default
spec:
secretName: my-ssl-cert-tls
issuerRef:
name: acme-issuer
kind: ClusterIssuer
commonName: yourdomain.com
dnsNames:
- yourdomain.com
- www.yourdomain.com
इसे लागू करें:
kubectl apply -f certificate.yaml
cert-manager जारीकर्ता का उपयोग करेगा, प्रवेश के माध्यम से चुनौती का समाधान करेगा, और जारी किए गए प्रमाणपत्र को Kubernetes TLS रहस्य के रूप में संग्रहीत करेगा।
चरण 5 – अपने प्रवेश में प्रमाणपत्र का संदर्भ लें
जनरेट किए गए प्रमाणपत्र का उपयोग करने के लिए अपने प्रवेश नियम का अद्यतन करें:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
namespace: default
annotations:
cert-manager.io/cluster-issuer: acme-issuer
spec:
tls:
- hosts:
- yourdomain.com
- www.yourdomain.com
secretName: my-ssl-cert-tls
rules:
- host: yourdomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: your-service
port:
number: 80
इसे लागू करें:
kubectl apply -f ingress.yaml
एक बार जब प्रमाणपत्र-प्रबंधक एनोटेशन का पता लगा लेता है, तो यह एसीएमई चुनौती को हल करना शुरू कर देगा और आपका प्रमाणपत्र जारी करेगा।
चरण 6 – सर्टिफिकेट और ऑटो-रिन्यूअल सत्यापित करें
यह सत्यापित करने के लिए कि सब कुछ काम करता है:
Kubectl प्रमाणपत्र My-SSL-cert का वर्णन करें
सफलतापूर्वक जारी किए गए प्रमाणपत्र की तलाश करें।
नवीनीकरण सेटअप की जाँच करने के लिए, चलाएँ:
kubectl get certificaterequests
सर्टिफिकेट-मैनेजर समाप्ति से ~ 30 दिन पहले स्वचालित रूप से नवीनीकरण संभालता है। आप इस तरह के नवीनीकरण का अनुकरण कर सकते हैं:
kubectl cert-manager renew my-ssl-cert
सामान्य प्रश्न
कुबेरनेट्स में एसीएमई एसएसएल स्थापित करना थोड़ा सार महसूस कर सकता है, खासकर जब प्रवेश नियंत्रकों, रहस्यों और डीएनएस रिकॉर्ड को करतब दिखाते हैं। नीचे, हम कुबेरनेट्स वातावरण में एसीएमई प्रमाणपत्र स्थापित करते समय डेवलपर्स के सामने आने वाले कुछ सामान्य प्रश्नों का उत्तर देते हैं, चाहे आप प्रमाणपत्र-प्रबंधक या वैकल्पिक सेटअप का उपयोग कर रहे हों।
क्या मैं HTTP -01 के बजाय DNS -01 का उपयोग कर सकता हूं?
हां, cert-manager Cloudflare, AWS और Google Cloud DNS जैसे प्रदाताओं के साथ DNS सत्यापन का समर्थन करता है। यदि आप पोर्ट 80 को उजागर नहीं करते हैं तो इसका उपयोग करें।
क्या प्रमाणपत्र-प्रबंधक उत्पादन-तैयार है?
वाक़ई। यह उद्यमों और सार्वजनिक बादलों में बड़े कुबेरनेट्स समूहों के लिए एसएसएल को शक्ति प्रदान करता है।
क्या मैं कुबेरनेट्स में ACME के साथ वाइल्डकार्ड प्रमाणपत्र का उपयोग कर सकता हूं?
हां, लेकिन वाइल्डकार्ड प्रमाणपत्रों के लिए DNS -01 सत्यापन की आवश्यकता होती है, जिसमें HTTP चुनौतियों का उपयोग करने के बजाय DNS रिकॉर्ड अपडेट करना शामिल है। पुष्टि करें कि आपका DNS प्रदाता स्वचालन (API के माध्यम से) का समर्थन करता है, और अपने प्रमाण-प्रबंधक सेटअप में तदनुसार dns01 सॉल्वर को कॉन्फ़िगर करें।
अंतिम शब्द
अब आप जानते हैं कि प्रमाणपत्र-प्रबंधक और एसीएमई-संगत प्रमाणपत्र प्राधिकरण का उपयोग करके कुबेरनेट्स में एसीएमई एसएसएल प्रमाणपत्र कैसे स्थापित किया जाए। यह सेटअप आधुनिक कुबेरनेट्स वातावरण के लिए पूरी तरह से स्वचालित और स्केलेबल है। आपको सुरक्षित HTTPS, ऑटो-नवीनीकरण और प्रवेश के साथ सहज एकीकरण मिलता है, सभी अपने क्लस्टर को छोड़े बिना।
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10

