हां, लेकिन कुछ कैविएट हैं।
यह सर्वर नाम संकेत, ट्रांसपोर्ट लेयर सिक्योरिटी के लिए एक्सटेंशन के माध्यम से पूरा किया जाता है।
सर्वर नाम संकेत क्या है?
सर्वर नेम इंडिकेशन ( RFC 6066 ; obsoleted RFC 4366 , RFC 3546 ) ट्रांसपोर्ट लेयर सिक्योरिटी का एक एक्सटेंशन है जो क्लाइंट को उस होस्ट के नाम को बताने की अनुमति देता है जिस तक वह पहुंचने की कोशिश कर रहा है।
एसएनआई टीएलएस 1.0 के साथ संगत है और कल्पना के अनुसार उच्चतर है, लेकिन कार्यान्वयन भिन्न हो सकते हैं (नीचे देखें)। इसका उपयोग एसएसएल के साथ नहीं किया जा सकता है, इसलिए एसएनआई का उपयोग करने के लिए कनेक्शन को टीएलएस ( आरएफसी 4346 परिशिष्ट ई देखें ) पर बातचीत करनी चाहिए । यह आमतौर पर समर्थित सॉफ़्टवेयर के साथ स्वचालित रूप से होता है।
एसएनआई की आवश्यकता क्यों है?
एक सामान्य HTTP कनेक्शन में, ब्राउज़र उस सर्वर के होस्टनाम के सर्वर को सूचित करता है जिसे वह Host:
हेडर का उपयोग करके पहुंचने की कोशिश कर रहा है । यह एक एकल आईपी पते पर एक वेब सर्वर के लिए कई होस्टनामों के लिए सामग्री परोसने की अनुमति देता है, जिसे आमतौर पर नाम-आधारित वर्चुअल होस्टिंग के रूप में जाना जाता है ।
इसका विकल्प यह है कि प्रत्येक वेब होस्टनाम के लिए विशिष्ट आईपी पते प्रदान किए जाएं। यह आमतौर पर वेब के बहुत शुरुआती दिनों में किया जाता था, इससे पहले कि यह व्यापक रूप से ज्ञात था कि आईपी पते बाहर निकलेंगे और संरक्षण उपाय शुरू हो गए, और अभी भी एसएसएल वर्चुअल होस्ट्स (एसएनआई का उपयोग नहीं करते) के लिए इस तरह से किया जाता है।
क्योंकि होस्ट नाम को प्रसारित करने की इस विधि के लिए पहले से ही स्थापित कनेक्शन की आवश्यकता है, यह SSL / TLS कनेक्शन के साथ काम नहीं करता है। जब तक सुरक्षित कनेक्शन सेट नहीं हो जाता, तब तक वेब सर्वर को पहले से ही पता होना चाहिए कि क्लाइंट को कौन सा होस्टनाम देना है, क्योंकि वेब सर्वर खुद ही सुरक्षित कनेक्शन सेट कर रहा है।
SNI क्लाइंट को होस्टनाम को TLS वार्ता के हिस्से के रूप में प्रसारित करके इस समस्या को हल करता है, ताकि सर्वर को पहले से ही पता चल जाए कि कनेक्शन को सेवा देने के लिए किस वर्चुअल होस्ट का उपयोग किया जाना चाहिए। सर्वर तब सही वर्चुअल होस्ट के लिए प्रमाणपत्र और कॉन्फ़िगरेशन का उपयोग कर सकता है।
विभिन्न IP पतों का उपयोग क्यों नहीं किया जाता है?
HTTP Host:
हेडर को IPv4 पतों की कमी के कारण एक ही IP पते से एक से अधिक वेब होस्ट की अनुमति देने के लिए परिभाषित किया गया था, जिसे 1990 के दशक के मध्य में समस्या के रूप में मान्यता दी गई थी। साझा किए गए वेब होस्टिंग वातावरण में, सैकड़ों अद्वितीय, असंबंधित वेब साइटों को एक आईपी पते का उपयोग करके इस तरह से परोसा जा सकता है, जो पते की जगह को संरक्षित करता है।
साझा किए गए होस्टिंग वातावरण ने तब पाया कि IP पते स्थान का सबसे बड़ा उपभोक्ता सुरक्षित वेब साइटों के लिए अद्वितीय IP पते की आवश्यकता थी, जिससे IPv6 के रास्ते में एक स्टॉप-गैप उपाय के रूप में SNI की आवश्यकता पैदा हो। आज कई बार महत्वपूर्ण औचित्य के बिना 5 आईपी पते (/ 29) प्राप्त करना मुश्किल होता है, जिसके परिणामस्वरूप अक्सर तैनाती में देरी होती है।
IPv6 के आगमन के साथ, ऐसी पता संरक्षण तकनीकें अब आवश्यक नहीं हैं, क्योंकि एक ही होस्ट के पास पूरे इंटरनेट की तुलना में अधिक IPv6 पते दिए जा सकते हैं, लेकिन तकनीक शायद अभी भी भविष्य में उपयोग की जाएगी विरासत IPv4 सम्बन्ध।
चेतावनियां
कुछ ऑपरेटिंग सिस्टम / ब्राउज़र संयोजन एसएनआई का समर्थन नहीं करते हैं (नीचे देखें), इसलिए एसएनआई का उपयोग करना सभी स्थितियों के लिए उपयुक्त नहीं है। ऐसी प्रणाली / ब्राउज़र संयोजनों को लक्षित करने वाली साइटों को SNI को छोड़ना होगा और प्रत्येक वर्चुअल होस्ट के लिए अद्वितीय IP पतों का उपयोग करना जारी रखना होगा।
विशेष रूप से, विंडोज एक्सपी पर इंटरनेट एक्सप्लोरर का कोई भी संस्करण एसएनआई का समर्थन नहीं करता है। जैसा कि यह संयोजन अभी भी एक महत्वपूर्ण (लेकिन लगातार कम होने वाला) का प्रतिनिधित्व करता है, दिसंबर 2012 में (NetMarketShare के अनुसार इंटरनेट ट्रैफ़िक का लगभग 16%) इंटरनेट ट्रैफ़िक का हिस्सा, SNI इन उपयोगकर्ता आबादी को लक्षित करने वाली साइट के लिए अनुपयुक्त होगा।
समर्थन
कई, लेकिन सभी नहीं, आमतौर पर इस्तेमाल किए जाने वाले सॉफ्टवेयर पैकेज एसएनआई का समर्थन करते हैं।
(इस सूची में प्रवेश का समर्थन की कमी का मतलब जरूरी नहीं है; इसका मतलब यह है कि मैं कितना टाइप कर सकता हूं, या मुझे खोज में जानकारी जल्दी नहीं मिल सकती है। यदि आपका सॉफ्टवेयर पैकेज सूचीबद्ध नहीं है, तो खोज करना sni
यदि समर्थन मौजूद है और इसे कैसे सेट किया जाए , इसके नाम के साथ साथ यह भी बताना चाहिए।
पुस्तकालय समर्थन
SSL / TLS सहायता प्रदान करने के लिए अधिकांश पैकेज बाहरी लाइब्रेरी पर निर्भर करते हैं।
- GNU TLS
- JSSE (Oracle Java) 7 या उच्चतर, केवल ग्राहक के रूप में
- libcurl 7.18.1 या उच्चतर
- एनएसएस 3.1.1 या उच्चतर
- ओपनएसएसएल 0.9.8j या उच्चतर
- OpenSSL 0.9.8f या उच्चतर, कॉन्फ़िगर किए गए झंडे के साथ
- Qt 4.8 या उच्चतर
सर्वर का समर्थन
लोकप्रिय सर्वर सॉफ्टवेयर के अधिकांश वर्तमान संस्करण एसएनआई का समर्थन करते हैं। इनमें से अधिकांश के लिए सेटअप निर्देश उपलब्ध हैं:
ग्राहक सहायता
अधिकांश वर्तमान वेब ब्राउज़र और कमांड लाइन उपयोगकर्ता एजेंट SNI का समर्थन करते हैं।
डेस्कटॉप
- क्रोम 5 या उच्चतर
- Windows XP पर Chrome 6 या उच्चतर
- फ़ायरफ़ॉक्स 2 या उच्चतर
- Internet Explorer 7 या उच्चतर, Windows Vista / Server 2008 या उच्चतर पर चल रहा है
- Windows XP पर इंटरनेट एक्सप्लोरर IE संस्करण की परवाह किए बिना SNI का समर्थन नहीं करता है
- कोनकेर 4.7 या उच्चतर
- ओपेरा 8 या अधिक (कार्य करने के लिए सक्षम टीएलएस 1.1 की आवश्यकता हो सकती है)
- Windows Vista / Server 2008 या उच्चतर, या Mac OS X 10.5.6 या उच्चतर पर Safari 3.0
मोबाइल
- 3.0 हनीकॉम्ब या उच्चतर पर एंड्रॉइड ब्राउज़र
- iOS 4 या उच्चतर पर iOS सफारी
- विंडोज फोन 7 या उच्चतर
कमांड लाइन
- curl 7.18.1 या उच्चतर
- 1.14 या उससे अधिक की छूट (वितरण SNI समर्थन के लिए एक पैच हो सकता है )
समर्थन नहीं
- ब्लैकबेरी ब्राउज़र
- Windows XP पर इंटरनेट एक्सप्लोरर (कोई भी संस्करण)
(नोट: इस उत्तर के लिए कुछ जानकारी विकिपीडिया से प्राप्त की गई थी ।)