अमेज़न EC2 में HTTPS सेटअप


101

हम Amazon EC2 में HTTPS को कैसे सक्षम करते हैं? हमारी साइट HTTP पर काम कर रही है।


अच्छा सवाल है, लेकिन मैं सुरक्षा समूह सेट करता हूं और कोई आकर्षण नहीं होता है
शार्क डेंग

जवाबों:


76

सबसे पहले, आपको HTTPS पोर्ट (443) खोलने की आवश्यकता है। ऐसा करने के लिए, आप https://console.aws.amazon.com/ec2/ पर जाएं और Security Groupsबाईं ओर दिए गए लिंक पर क्लिक करें , फिर एक नया सुरक्षा समूह बनाएं जिसमें HTTPS भी उपलब्ध हो। फिर, बस चल रहे इंस्टेंस के सुरक्षा समूह को अपडेट करें या उस समूह का उपयोग करके एक नया इंस्टेंस बनाएं।

इन चरणों के बाद, आपका EC2 कार्य समाप्त हो गया है, और यह सभी अनुप्रयोग समस्या है।


15
मैं उदाहरण के लिए उपयोग किए गए सुरक्षा समूह में पोर्ट 443 के लिए एक नया नियम जोड़ने में सक्षम था और यह सिर्फ रिबूट किए बिना भी काम करना शुरू कर दिया।
दिमित्री एफिमेंको सेप

9
you can't change a security group of a running instance, even rebooting- मुझे लगता है कि यह जवाब हटा दिया गया था क्योंकि यह जवाब पोस्ट किया गया था।
यूरी नकोनचैनी

11
आपको सुरक्षा समूह को बदलने की आवश्यकता नहीं है, आप कर सकते हैंEdit inbound rules
खोय

8
@ nikhil84 को सुरक्षा समूह में HTTPS जोड़कर आपने केवल मशीन पर पोर्ट 443 खोला है जो चरण 1 है। दूसरा, आपको उस मशीन पर अपना सर्वर सेटअप करने के लिए 443 पोर्ट (डिफ़ॉल्ट HTTP पोर्ट 80 के बजाय) को सुनने और HTTPS ट्रैफ़िक स्वीकार करने की आवश्यकता है। आप किस सर्वर का उपयोग करते हैं?
युरी नकोनचाय

4
@ nikhil84 कृपया यहां दिए गए दिशानिर्देशों का पालन करें: digitalocean.com/community/tutorials/… अप करने के लिए सेटअप अपाचे HTTPD पर https
यूरी Nakonechnyy

40

यह उत्तर उस व्यक्ति पर केंद्रित है जो किसी अन्य साइट में डोमेन खरीदता है (GoDaddy के रूप में) और प्रमाणपत्र प्रबंधक के साथ अमेज़ॅन नि: शुल्क प्रमाणपत्र का उपयोग करना चाहता है

यह उत्तर अमेज़न क्लासिक लोड बैलेंसर (भुगतान किया गया) का उपयोग करने से पहले मूल्य निर्धारण देखता है


चरण 1 - प्रमाणपत्र प्रबंधक के साथ एक प्रमाण पत्र का अनुरोध करें

प्रमाणपत्र प्रबंधक पर जाएं> प्रमाणपत्र का अनुरोध करें> सार्वजनिक प्रमाणपत्र का अनुरोध करें

डोमेन नाम पर आप जोड़ेंगे myprojectdomainname.comऔर *.myprojectdomainname.comआगे बढ़ेंगे

ईमेल सत्यापन और अनुरोध की पुष्टि करें

आपके द्वारा प्राप्त ईमेल को खोलें (उस ईमेल खाते पर, जो आपने डोमेन खरीदा है) और अनुरोध का पालन करें

इस के बाद, जांच के सत्यापन स्थिति अगर myprojectdomainname.comऔर *.myprojectdomainname.comसफलता है, अगर सफलता आप चरण 2 के लिए जारी कर सकते हैं

चरण 2 - एक लोड बैलेंसर के लिए एक सुरक्षा समूह बनाएं

EC2 पर सुरक्षा समूह> पर जाएं और एक सुरक्षा समूह बनाएं और http और https इनबाउंड जोड़ें

यह कुछ इस तरह होगा: यहां छवि विवरण दर्ज करें

चरण 3 - लोड बैलेंसर बनाएँ

EC2> लोड बैलेंसर> लोड बैलेंसर बनाएँ> क्लासिक लोड बैलेंसर (तीसरा विकल्प)

अंदर LB बनाएं - आपके प्रोजेक्ट का vpc लोड बैलेंसर प्रोटोकॉल में Http और Https जोड़ें यहां छवि विवरण दर्ज करें

अगला> सुरक्षा समूह से बाहर निकलें का चयन करें

सुरक्षा समूह चुनें जिसे आपने पिछले चरण में बनाया है

अगला> ACM से प्रमाणपत्र चुनें

चरण 1 का प्रमाण पत्र चुनें

अगला>

स्वास्थ्य जांच पर मैंने पिंग पथ का उपयोग किया है / (/index.html के बजाय एक स्लैश)

चरण 4 - अपने उदाहरण को लोड बैलेंसर के सुरक्षा समूह के साथ जोड़ दें

EC2> उदाहरण> अपनी परियोजना पर क्लिक करें> कार्य> नेटवर्किंग> सुरक्षा समूह बदलें

अपने भार बैलेंसर के सुरक्षा समूह को जोड़ें

चरण 5

EC2> लोड बैलेंसर> आपके द्वारा बनाए गए लोड बैलेंसर पर क्लिक करें> DNS नाम (ए रिकॉर्ड) की प्रतिलिपि बनाएँ, यह कुछ इस तरह होगा myproject-2021611191.us-east-1.elb.amazonaws.com

मार्ग 53 पर जाएं> रूट ज़ोन> डोमेन नाम पर क्लिक करें> रिकॉर्ड्स सेट पर जाएं (यदि आपके पास यहां अपना डोमेन नहीं है, तो होस्टेड ज़ोन बनाएं Domain Name: myprojectdomainname.comऔर Type: Public Hosted Zone)

जांचें कि क्या आपके पास रिकॉर्ड प्रकार ए है (शायद नहीं), खाली नाम के साथ रिकॉर्ड सेट बनाएं / संपादित करें, टाइप ए, उर्फ ​​हां और आपके द्वारा कॉपी किए गए डॉट्स को लक्षित करें।

टाइप , नाम *.myprojectdomainname.com, उर्फ ​​हां और अपने डोमेन को लक्षित करने का एक नया रिकॉर्ड सेट बनाएं (myprojectdomainname.com)। यह आपकी साइट को www.myprojectdomainname.com और subsite.myprojectdomainname.com से संभव बनाएगा। नोट: आपको ऐसा करने के लिए अपने रिवर्स प्रॉक्सी (Nginx / Apache) को कॉन्फ़िगर करने की आवश्यकता होगी।

NS पर अगले चरण पर उपयोग करने के लिए 4 नाम सर्वर मानों की प्रतिलिपि बनाएँ, यह कुछ इस तरह होगा:

ns-362.awsdns-45.com ns-1558.awsdns-02.co.uk ns-737.awsdns-28.net ns-1522.awsdns-62.org

EC2> इंस्टेंस> पर जाएं और IPv4 पब्लिक आईपी को भी कॉपी करें

चरण 6

डोमेन रजिस्टर साइट पर जो आपने डोमेन खरीदा है (मेरे मामले में GoDaddy)

रूटिंग को बदलें http : <Your IPv4 Public IP Number>और मास्किंग के साथ फॉरवर्ड चुनें

नाम सर्वर (NS) को 4 NS में बदलें जिसे आपने कॉपी किया है, इसे प्रभावी बनाने में 48 घंटे लग सकते हैं


अगर मुझे https चाहिए तो क्या मुझे लोड बैलेंसर का उपयोग करना होगा?
कर्टिस

मैंने यह सब किया था लेकिन मुझे ERR_CONNECTION_TIMED_OUT मिलता है जब मैंने एक ब्राउज़र में अपना डोमेन मारा
कर्टिस

1
मुझे पोर्ट 80 पर एक नए लक्ष्य समूह के साथ एक लोड बैलेंसर बनाने की आवश्यकता थी, फिर पोर्ट 80 का उपयोग करने के लिए श्रोताओं को संपादित करें। अब काम करता है। धन्यवाद।
कर्टिस

1
@ कर्टिस लोड बैलेंसर https का उपयोग करने का एकमात्र विकल्प नहीं है, आप अपने EC2 के अंदर "एनक्रिप्ट" को भी कॉन्फ़िगर कर सकते हैं
DigaoParceiro

@DigaoParceiro आपने चरण 5 के साथ क्या किया। DNS नाम की प्रतिलिपि बनाई?
प्रशांत

9

अमेज़ॅन EC2 इंस्टेंस सिर्फ वर्चुअल मशीन हैं ताकि आप एसएसएल को उसी तरह सेटअप करेंगे जैसे आप इसे किसी भी सर्वर पर सेट करेंगे।

आप इस बात का उल्लेख नहीं करते हैं कि आप किस मंच पर हैं, इसलिए कोई भी अधिक जानकारी देना मुश्किल है।


हैलो - मैं एक T2.Micro Amazon Linux EC2 इंस्टेंस चला रहा हूं। मैं सर्वर को प्रोप करने के लिए नोड.जेएस का उपयोग कर रहा हूं। मैं अपने सर्वर स्क्रिप्ट में 443 पोर्ट सुन रहा हूं और मेरा सुरक्षा समूह पोर्ट 443 के लिए कॉन्फ़िगर किया गया है। HTTPS को सक्षम करने के लिए मुझे और क्या करना होगा? मुझे एक प्रमाण पत्र चाहिए, सही? ऐसा करने के बारे में सभ्य जानकारी प्राप्त करने में परेशानी होना, जो इलास्टिक बीनस्टॉक पर आधारित नहीं है।
स्टीफन टेट्रौल्ट

2
@SMT - मुक्त और ऑटो-नवीनीकरण प्रमाणपत्र के लिए letencrypt.org पर एक नज़र डालें । नोड का उपयोग करके इसे सेट करने के बारे में बहुत सारी जानकारी (Google के माध्यम से) है। AWS / EC2 के अलावा कुछ और नहीं है जो आपको करने की आवश्यकता है।
ज्योफ एप्पलफोर्ड

2
उत्तर के लिए धन्यवाद! मैंने वास्तव में इसे दूसरे दिन काम किया और कुछ चरणों को सुव्यवस्थित किया। अगर कोई इसे भविष्य से पढ़ रहा है: github.com/MSCHF/aws-ec2-node-npm-setup
Stephen Tetreault

5

एक पुराना सवाल लेकिन जवाब में एक और विकल्प का उल्लेख करने लायक। यदि आपके डोमेन का DNS सिस्टम अमेज़न रूट 53 में परिभाषित किया गया है, तो आप अपने EC2 के सामने Amazon CloudFront सेवा का उपयोग कर सकते हैं और इसके लिए एक मुफ्त Amazon SSL प्रमाणपत्र संलग्न कर सकते हैं। इस तरह आप तेजी से सामग्री वितरण के लिए सीडीएन रखने और एचटीटीपीएस प्रोटोकॉल के साथ आपको डोमेन हासिल करने से लाभान्वित होंगे।


क्या कोई संदर्भ या ब्लॉग है जहां इसे प्राप्त करने के लिए चरणों का उल्लेख किया गया है?
सौरभ यादव

इस वीडियो में अतीकुर रहमान को अमेजन प्रमाणपत्र प्रबंधक का उपयोग करके ssl प्रमाणपत्र मिलता है और फिर वह EC2 उदाहरण के साथ क्लाउड फ्रंट को कॉन्फ़िगर करता है। कॉन्फ़िगरेशन http / 2 के बाद स्वचालित रूप से सक्षम हो जाता है।
सचित्र दिलशान

4

उन लोगों के लिए भी उत्तर होना चाहिए जो मुख्य रूप से डेमो और परीक्षण उद्देश्यों के लिए ec2 पर परेशानी मुक्त https चाहते हैं, एक तरीका है कि वे बहुत तेजी से प्राप्त कर सकते हैं:

मेरे उत्तर के साथ यहां बताया गया है कि आप प्रमाण पत्र बनाने की परेशानी के बिना EC2 के साथ मिनटों में परीक्षण के लिए https कैसे प्राप्त कर सकते हैं


2

इलास्टिक लोड बैलेंसिंग का उपयोग करें , यह लोड बैलेंसर पर एसएसएल समाप्ति का समर्थन करता है, जिसमें एप्लिकेशन इंस्टेंसेस से एसएसएल डिक्रिप्शन को ऑफलोड करना और एसएसएल प्रमाणपत्रों का केंद्रीकृत प्रबंधन प्रदान करना शामिल है।


15
आप बस एसएसएल प्रदान करने के लिए ईएलबी का उपयोग नहीं करते हैं, यह वास्तव में काफी भ्रामक उत्तर है। आपके सर्वर को SSL की परवाह किए बिना प्रदान करने की आवश्यकता है, इसलिए यदि आपको इसकी आवश्यकता नहीं है तो लोड बैलेंसर जोड़ना अतिरिक्त लागत है। यह सॉफ्टवेयर में SSL समाप्ति भी है, इसलिए लोड बैलेंसर और सर्वर (s) के बीच SSL प्रदर्शन को प्रभावित करने वाला एक अतिरिक्त कदम है।
थॉमस टैंक टैंक

1
मैं आपकी टिप्पणी से सहमत हूं। यह अतिरिक्त लागत जोड़ देगा और प्रदर्शन को प्रभावित करेगा। हम उनके सर्वर पर लोड करने के संबंध में उनकी सटीक आवश्यकताओं को नहीं जानते हैं, इसलिए यह अभी भी एक रास्ता हो सकता है। लेकिन मुझे आपकी टिप्पणी समझ में नहीं आती है "आपके सर्वर को SSL प्रदान करने की आवश्यकता है", इसकी आवश्यकता क्यों है? लोड बैलेंसर में ऑफ लोडिंग एसएसएल भी शामिल है। धन्यवाद।
पीटर हल्सन

2
हाँ सच। आप एक साधारण फैशन में एसएसएल प्रदान करने के लिए इसका उपयोग कर सकते हैं। मैं सिर्फ यह सोच रहा हूं कि अभी भी उदाहरणों में सार्वजनिक डीएनएस मान हैं जहां उपयोगकर्ता किसी भी कारण से सीधे उन तक पहुंच सकते हैं। यदि ऐसा हुआ है तो यह अच्छी तरह से हो सकता है कि आप एसएसएल का उपयोग करने के लिए मजबूर करना चाहते हैं।
थॉमस ने टैंक इंजन

मुझे पता है कि यह टिप्पणी देर से है, लेकिन मेरी समझ से यदि आप एक पंजीकृत डोमेन नाम का उपयोग करना चाहते हैं, तो आपको ELB का उपयोग करना होगा, क्योंकि EC2 IP को 'गैर-स्थायी' माना जाता है और इसलिए आपके SSL प्रमाणपत्र का उपयोग नहीं किया जा सकता है। दूसरी ओर, यदि आप केवल अमेज़ॅन के प्रदान किए गए DNS का उपयोग कर रहे हैं, तो शायद इसे ईएलबी की आवश्यकता नहीं है, मैंने जांच नहीं की है।
hexicle


0

सबसे अच्छा संसाधनों में से एक जो मैंने पाया था कि चलो एन्क्रिप्ट का उपयोग कर रहे हैं, आपको HTTPS के लिए अपने EC2 उदाहरण के लिए ELB और न ही क्लाउडफ्रंट की आवश्यकता है, बस निम्नलिखित सरल निर्देशों का पालन करें: अपने सर्वर में लॉगिन एन्क्रिप्ट करें और लिंक में दिए चरणों का पालन करें।

यह भी महत्वपूर्ण है कि दूसरों द्वारा उल्लेख किया गया है कि आपके पास अपने सुरक्षा समूहों को संपादित करके खोला गया 443 पोर्ट है

आप इस लिंक में साइट का नाम बदलकर अपना प्रमाणपत्र या किसी अन्य वेबसाइट को देख सकते हैं

कृपया यह न भूलें कि यह केवल 90 दिनों के लिए वैध है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.