इस ट्यूटोरियल में, आप सीखेंगे AWS (Amazon Web Services) में SSL सर्टिफिकेट कैसे इंस्टॉल करें। AWS पर आप किसी एक सर्वर पर सर्टिफिकेट इंस्टॉल नहीं करते जैसा कि आप Apache या Nginx के साथ करते हैं। इसके बजाय, आप सर्टिफिकेट को एक बार सर्टिफिकेट स्टोर में इम्पोर्ट करते हैं, फिर इसे एक मैनेज्ड सर्विस (एक लोड बैलेंसर, CloudFront, या API Gateway) से अटैच करते हैं जो आपके लिए TLS कनेक्शन को समाप्त करती है। यह गाइड AWS Certificate Manager (ACM), लीगेसी IAM सर्टिफिकेट स्टोर, और Elastic Load Balancing (ELB) को कवर करती है।
इंस्टॉलेशन से पहले, आपको एक Certificate Signing Request (CSR) जनरेट करना होगा और इसे स्वीकृति के लिए Certificate Authority को भेजना होगा। यदि आपने यह चरण पूरा नहीं किया है, तो इस ट्यूटोरियल के पहले भाग से शुरू करें। यदि आपके पास पहले से ही आपकी SSL सर्टिफिकेट फाइलें हैं, तो सीधे नीचे दी गई इंस्टॉलेशन गाइड पर जाएं।
AWS में CSR कोड कैसे जनरेट करें
SSL सर्टिफिकेट के लिए आवेदन करते समय, एक आवश्यक चरण है CSR कोड को अपने SSL प्रदाता, जिसे Certificate Authority भी कहा जाता है, को सबमिट करना। CSR में आपके डोमेन नाम और संगठन के बारे में एन्कोडेड जानकारी होती है। इस कोड ब्लॉक को प्रदान किए बिना आप हस्ताक्षरित SSL सर्टिफिकेट प्राप्त नहीं कर सकते। आपके पास दो विकल्प हैं:
- CSR को स्वचालित रूप से बनाने के लिए हमारे CSR Generator का उपयोग करें।
- CSR को मैन्युअल रूप से जनरेट करें। सबसे अच्छा विकल्प उसी सर्वर पर CSR बनाना है जहां आपका SSL सर्टिफिकेट चलेगा। अपने प्लेटफ़ॉर्म के लिए ट्यूटोरियल चुनें:
यदि आपके पास केवल एक लोड बैलेंसर है और कमांड चलाने के लिए कोई मूल वेब सर्वर नहीं है, तो आप OpenSSL टूल से अपना CSR और प्राइवेट की बना सकते हैं:
openssl req -new -newkey rsa:2048 -nodes -keyout yoursite.key -out example.csr
नोट: जिस डोमेन नाम को आप सुरक्षित करना चाहते हैं, उसके साथ yoursite को बदलें। यह कमांड आपकी प्राइवेट की (yoursite.key) भी लिखता है; इसे सुरक्षित रखें, क्योंकि बाद में सर्टिफिकेट इम्पोर्ट करने के लिए आपको इसकी आवश्यकता होगी।
कमांड चलाने के बाद, OpenSSL CSR को example.csr में लिखता है। उस फाइल को खोलें और पूरा ब्लॉक कॉपी करें, जिसमें —–BEGIN CERTIFICATE REQUEST—– और —–END CERTIFICATE REQUEST—– लाइनें शामिल हैं। आप इस कोड को अपने SSL सर्टिफिकेट एक्टिवेशन के दौरान पेस्ट करेंगे।
सभी सर्टिफिकेट फाइलें तैयार करें
इंस्टॉलेशन शुरू करने से पहले, सुनिश्चित करें कि आपके पास सभी आवश्यक सर्टिफिकेट फाइलें हैं। Certificate Authority द्वारा आपके SSL सर्टिफिकेट पर हस्ताक्षर करने के बाद, यह इंस्टॉलेशन फाइलें आपके इनबॉक्स में भेजती है। आपको यह चाहिए:
- आपकी प्राथमिक सर्टिफिकेट फाइल, जो उस डोमेन नाम के लिए जारी की गई है जिसे आप सुरक्षित करना चाहते हैं।
- आपकी Certificate Authority से CA बंडल (इंटरमीडिएट सर्टिफिकेट चेन)।
- आपकी प्राइवेट की।
आपका SSL सर्टिफिकेट और CA बंडल उस ZIP आर्काइव में आता है जो CA ने आपको भेजा है। प्राइवेट की वही है जो आपने अपने CSR कोड के साथ जनरेट की थी; यह उसी स्थान पर रहती है जहां आपने CSR बनाया था।
जांचने के लिए एक आखिरी चीज़ आपकी फाइलों का फॉर्मेट है। ACM और IAM केवल PEM-एन्कोडेड फाइलों को स्वीकार करते हैं, इसलिए सुनिश्चित करें कि आपका सर्टिफिकेट, चेन, और प्राइवेट की PEM में हों। PEM एक टेक्स्ट फॉर्मेट है जो कई फाइल एक्सटेंशन (.pem, .key, .cer, .crt, और अन्य) रख सकता है; एक PEM फाइल —–BEGIN CERTIFICATE—– जैसी लाइन से शुरू होती है। प्राइवेट की को अनएन्क्रिप्टेड होना चाहिए: ACM एक ऐसी की को अस्वीकार करता है जो पासवर्ड या पासफ्रेज से सुरक्षित हो।
यदि आपको अपनी फाइलें किसी अन्य फॉर्मेट में मिली हैं, जैसे PFX/PKCS#12, तो पहले उन्हें PEM में बदलें। आप यह OpenSSL कमांड के साथ कर सकते हैं। एक बार जब आपकी फाइलें PEM फॉर्मेट में हों, तो आप अपना सर्टिफिकेट इंस्टॉल करने के लिए तैयार हैं।
AWS Certificate Manager (ACM) में SSL सर्टिफिकेट इंस्टॉल करें
ACM AWS मैनेज्ड सर्विसेज के लिए सर्टिफिकेट संग्रहीत करने के लिए अनुशंसित स्थान है। आप कंसोल या CLI के माध्यम से अपना थर्ड-पार्टी सर्टिफिकेट इम्पोर्ट कर सकते हैं।
विकल्प A: ACM कंसोल में इम्पोर्ट करें
- AWS कंसोल खोलें और Certificate Manager पर जाएं। पुष्टि करें कि आप सही Region में हैं (ऊपर दाईं ओर)। सर्टिफिकेट को उसी Region में इम्पोर्ट करें जिस सर्विस का यह उपयोग करेगी। CloudFront के लिए, US East (N. Virginia), us-east-1 का उपयोग करें।
- Import certificate चुनें।
- Certificate body में, अपना प्राथमिक सर्टिफिकेट पेस्ट करें (वह ब्लॉक जो —–BEGIN CERTIFICATE—– से शुरू होता है)।
- Certificate private key में, अपनी अनएन्क्रिप्टेड प्राइवेट की पेस्ट करें (वह ब्लॉक जो —–BEGIN PRIVATE KEY—– या —–BEGIN RSA PRIVATE KEY—– से शुरू होता है)।
- Certificate chain में, अपना CA बंडल पेस्ट करें (इंटरमीडिएट सर्टिफिकेट्स)।
- Next चुनें, कोई भी टैग जोड़ें, फिर Import चुनें।
विकल्प B: AWS CLI के साथ इम्पोर्ट करें
अपने सर्टिफिकेट को ACM में अपलोड करने के लिए नीचे दिया गया कमांड चलाएं। fileb:// प्रीफिक्स पर ध्यान दें: यह CLI को बताता है कि प्रत्येक फाइल को raw bytes के रूप में पढ़ना है, जो ACM की अपेक्षा है।
aws acm import-certificate
--certificate fileb://example.crt
--private-key fileb://example.key
--certificate-chain fileb://example-bundle.crt
नोट: प्रत्येक example फाइल नाम को अपनी फाइल के वास्तविक नाम से बदलें। यदि इम्पोर्ट सफल होता है, तो CLI सर्टिफिकेट ARN (Amazon Resource Name) लौटाता है। सर्टिफिकेट को किसी सर्विस से जोड़ने के लिए आपको इस पहचानकर्ता की आवश्यकता है। अपने सर्टिफिकेट को आगे प्रबंधित करने के लिए यहां ACM कमांड्स की पूरी सूची है।
महत्वपूर्ण चेतावनियां:
- इम्पोर्ट किए गए सर्टिफिकेट स्वतः नवीनीकृत नहीं होते। ACM केवल उन सर्टिफिकेट्स को स्वतः नवीनीकृत करता है जो यह स्वयं जारी करता है। इम्पोर्ट किए गए सर्टिफिकेट की समाप्ति तिथि को ट्रैक करना और इसकी समाप्ति से पहले एक नया सर्टिफिकेट पुनः इम्पोर्ट करना आपकी जिम्मेदारी है (AWS समाप्ति से कम से कम 24 घंटे पहले करने की सिफारिश करता है)। उसी ACM सर्टिफिकेट में पुनः इम्पोर्ट करने से मौजूदा सर्विस एसोसिएशन बरकरार रहते हैं, इसलिए लोड बैलेंसर या डिस्ट्रीब्यूशन बिना किसी अतिरिक्त बदलाव के इसका उपयोग जारी रखता है।
- Region मायने रखता है। एक ACM सर्टिफिकेट Regional होता है। इसे उसी Region में इम्पोर्ट करें जिस लोड बैलेंसर या सर्विस का यह उपयोग करेगा। CloudFront केवल us-east-1 से सर्टिफिकेट्स स्वीकार करता है।
AWS IAM (लीगेसी) में SSL सर्टिफिकेट इंस्टॉल करें
IAM सर्टिफिकेट स्टोर पुरानी विधि है और AWS नई डिप्लॉयमेंट के लिए ACM की सिफारिश करता है। IAM का उपयोग केवल तब करें जब कोई सर्विस या Region ACM का समर्थन नहीं करता है, या जब आपको विशेष रूप से IAM स्टोर की आवश्यकता हो (उदाहरण के लिए, कुछ CloudFront सेटअप, जहां पथ को /cloudfront/ से शुरू होना चाहिए)। सर्टिफिकेट को IAM पर इसके साथ अपलोड करें:
aws iam upload-server-certificate
--server-certificate-name certificate-name
--certificate-body file://example.crt
--certificate-chain file://example-bundle.crt
--private-key file://example.key
मानों को नीचे दिखाए अनुसार बदलें:
- –server-certificate-name: एक कस्टम नाम जिसे याद रखना आसान हो, उदाहरण के लिए आपका डोमेन नाम। केवल अपर और लोअर केस अल्फान्यूमेरिक कैरेक्टर्स का उपयोग करें; कोई स्पेस अनुमति नहीं है।
- –certificate-body: आपके प्राथमिक SSL सर्टिफिकेट का फाइल नाम।
- –certificate-chain: आपके CA बंडल का फाइल नाम।
- –private-key: आपकी प्राइवेट की का फाइल नाम।
सर्टिफिकेट, प्राइवेट की, और चेन सभी PEM-एन्कोडेड होने चाहिए, और प्राइवेट की सर्टिफिकेट से मेल खानी चाहिए। यदि अपलोड सफल होता है, तो CLI सर्वर सर्टिफिकेट मेटाडेटा लौटाता है, जिसमें इसका पथ, नाम, ID, ARN, अपलोड तिथि, और समाप्ति तिथि शामिल होती है। SSL प्रबंधन और समस्या निवारण पर आगे की मदद के लिए, Amazon की आधिकारिक गाइड देखें।
ELB (Elastic Load Balancing) में सर्टिफिकेट अटैच करें
सर्टिफिकेट को ACM या IAM में इम्पोर्ट करना अभी इसे सर्व नहीं करता। सर्टिफिकेट तभी सक्रिय होता है जब आप इसके ARN को किसी सर्विस से अटैच करते हैं। यह सेक्शन मानता है कि आपने पहले ही सर्टिफिकेट इम्पोर्ट कर लिया है और किसी मौजूदा लोड बैलेंसर पर HTTPS लिस्नर बनाना या अपडेट करना चाहते हैं। आपको अपने सर्टिफिकेट का ARN और लोड बैलेंसर का नाम या ARN चाहिए होगा।
Classic Load Balancer
Classic Load Balancer पर HTTPS लिस्नर बनाने और उसे सर्टिफिकेट असाइन करने के लिए नीचे दिए गए कमांड का उपयोग करें:
aws elb create-load-balancer-listeners
--load-balancer-name my-load-balancer
--listeners "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN"
ARN को ACM या IAM से अपने सर्टिफिकेट के ARN से बदलें। यदि आपके पास पहले से एक HTTPS लिस्नर है और केवल एक नया सर्टिफिकेट बदलना चाहते हैं, तो इसका उपयोग करें:
aws elb set-load-balancer-listener-ssl-certificate
--load-balancer-name my-load-balancer
--load-balancer-port 443
--ssl-certificate-id NewARN
NewARN को नए सर्टिफिकेट के ARN से बदलें। यहां ELB कमांड्स की पूरी रेंज है, और Classic Load Balancer के लिए HTTPS लिस्नर्स पर Amazon की आधिकारिक गाइड।
Application Load Balancer
Application Load Balancer पर HTTPS लिस्नर बनाने के लिए निम्नलिखित कमांड चलाएं। नीचे दिया गया –ssl-policy मान एक सुरक्षा नीति चुनता है जो TLS 1.3 और TLS 1.2 का समर्थन करती है:
aws elbv2 create-listener
--load-balancer-arn my-load-balancer-arn
--protocol HTTPS
--port 443
--certificates CertificateArn=my-certificate-arn
--ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06
--default-actions Type=forward,TargetGroupArn=my-target-group-arn
आप my-load-balancer-arn और my-target-group-arn मान इसे चलाकर पा सकते हैं:
aws elbv2 describe-target-groups
यह आपके अकाउंट में संबंधित लोड बैलेंसर्स और टारगेट ग्रुप्स को प्रकट करता है। किसी मौजूदा HTTPS लिस्नर में नया सर्टिफिकेट जोड़ने के लिए, इसका उपयोग करें:
aws elbv2 modify-listener
--listener-arn my-https-listener-arn
--certificates CertificateArn=my-new-certificate-arn
आप my-https-listener-arn मान इसके साथ पा सकते हैं:
aws elbv2 describe-listeners
--load-balancer-arn my-load-balancer-arn
अपने Application Load Balancer को आगे प्रबंधित करने के लिए elbv2 कमांड रेफरेंस देखें।
अपना SSL इंस्टॉलेशन टेस्ट करें
अपने डोमेन के HTTPS वर्जन को ब्राउज़ करें और जांचें कि पैडलॉक मौजूद है। सर्टिफिकेट विवरण जांचने के लिए इस पर क्लिक करें। एक गहन टेस्ट के लिए, हमारे SSL Checker का उपयोग करें: यह आपकी इंस्टॉलेशन को स्कैन करता है और तुरंत एक रिपोर्ट बनाता है। आप कमांड लाइन से भी सर्टिफिकेट की पुष्टि कर सकते हैं:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
यह उस सर्टिफिकेट के जारीकर्ता और वैधता तिथियों को प्रिंट करता है जिसे लोड बैलेंसर सर्व कर रहा है। यदि आपने एक नया सर्टिफिकेट इम्पोर्ट किया है लेकिन फिर भी पुराना ही दिख रहा है, तो पुष्टि करें कि लिस्नर नए ARN की ओर इंगित करता है और आप सही Region और एंडपॉइंट का परीक्षण कर रहे हैं।
अक्सर पूछे जाने वाले प्रश्न
आप इसे किसी एक सर्वर पर इंस्टॉल नहीं करते। आप सर्टिफिकेट को AWS Certificate Manager (ACM) में इम्पोर्ट करते हैं, फिर परिणामी ARN को एक मैनेज्ड सर्विस से अटैच करते हैं जो TLS कनेक्शन को समाप्त करती है, जैसे कि एक Application या Classic Load Balancer, एक CloudFront डिस्ट्रीब्यूशन, या एक API Gateway कस्टम डोमेन।
नहीं। ACM केवल उन सर्टिफिकेट्स को स्वतः नवीनीकृत करता है जो यह स्वयं जारी करता है। एक इम्पोर्ट किए गए थर्ड-पार्टी सर्टिफिकेट को इसकी समाप्ति से पहले पुनः जारी और पुनः इम्पोर्ट किया जाना चाहिए। उसी ACM सर्टिफिकेट में पुनः इम्पोर्ट करने से इसके सर्विस एसोसिएशन बरकरार रहते हैं, इसलिए लोड बैलेंसर बिना किसी अतिरिक्त बदलाव के नवीनीकृत सर्टिफिकेट को सर्व करता रहता है।
ACM का उपयोग करें। IAM सर्टिफिकेट स्टोर एक लीगेसी विधि है जिसे AWS मुख्य रूप से बैकवर्ड कम्पैटिबिलिटी और उन मामलों के लिए रखता है जिन्हें ACM कवर नहीं करता। लोड बैलेंसर्स और CloudFront सहित अधिकांश सेटअप के लिए, ACM अनुशंसित विकल्प है।
सबसे आम कारण यह है कि की एन्क्रिप्टेड है। ACM केवल एक अनएन्क्रिप्टेड, PEM-एन्कोडेड प्राइवेट की स्वीकार करता है जो सर्टिफिकेट से मेल खाती हो। पहले पासफ्रेज हटाएं, फिर इम्पोर्ट करें। सुनिश्चित करें कि सभी तीनों भाग (सर्टिफिकेट, चेन, और की) PEM-एन्कोडेड हैं।
इसे उसी Region में इम्पोर्ट करें जिस लोड बैलेंसर या सर्विस का यह उपयोग करेगा, क्योंकि ACM सर्टिफिकेट्स Regional होते हैं। CloudFront अपवाद है: यह केवल US East (N. Virginia), us-east-1 में इम्पोर्ट किए गए सर्टिफिकेट्स स्वीकार करता है।
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10


