सैन और एसएनआई एसएसएल प्रमाणपत्रों में क्या अंतर है?


21

क्या कोई मुझे इन प्रमाणपत्रों के बीच के अंतर को सरल तरीके से समझा सकता है? मैं कुछ लेख पढ़ता हूं, लेकिन लगता है कि वे एक ही काम करते हैं, अर्थात् एक प्रमाण पत्र के साथ कई डोमेन एन्क्रिप्ट करना।


11
खैर, पहले, "एसएनआई" एसएसएल प्रमाणपत्र जैसी कोई चीज नहीं है।
माइकल हैम्पटन

जवाबों:


36

सैन (विषय वैकल्पिक नाम) X509 प्रमाणपत्र युक्ति का हिस्सा है , जहां प्रमाणपत्र में वैकल्पिक नामों की एक सूची है जो विषय के लिए भी मान्य हैं (एकल सामान्य नाम / CN के अलावा)। यह फ़ील्ड और वाइल्डकार्ड नाम मूल रूप से कई नामों के लिए एक प्रमाणपत्र का उपयोग करने के दो तरीके हैं।

SNI (सर्वर नेम इंडिकेशन) एक TLS प्रोटोकॉल एक्सटेंशन है जो HTTP होस्ट-हेडर के बराबर TLS प्रोटोकॉल की तरह है। जब कोई क्लाइंट इसे भेजता है, तो यह सर्वर को सर्वर पर अलग-अलग आईपी पते का उपयोग करने की सीमा के बिना क्लाइंट को प्रस्तुत करने के लिए उचित प्रमाण पत्र लेने की अनुमति देता है (बहुत ज्यादा कैसे HTTP होस्ट हेडर सादे HTTP के लिए भारी उपयोग किया जाता है)।

ध्यान दें कि एसएनआई कुछ ऐसा नहीं है जो प्रमाण पत्र में परिलक्षित होता है और यह वास्तव में सवाल पूछने वाले के विपरीत की तरह हासिल करता है; यह कई चीजों के लिए एक प्रमाण पत्र का उपयोग नहीं करते हुए, कई प्रमाणपत्रों को सरल बनाता है।

दूसरी ओर, यह उस स्थिति पर बहुत अधिक निर्भर करता है जो पथ वास्तव में बेहतर है। एक उदाहरण के रूप में, जो प्रश्न पूछता है वह लगभग आश्वस्त नहीं है कि आप वास्तव में क्या चाहते हैं यदि आपको विभिन्न संस्थाओं के लिए प्रमाण पत्र की आवश्यकता है।


2
यह ध्यान देने योग्य है कि CN को लंबे समय से हटा दिया गया है, यदि कोई नाम CN में है, लेकिन SAN (या यदि कोई प्रमाण पत्र नहीं है SAN क्षेत्र) तो बहुत सारे ग्राहक आपको पागल हो जाएंगे।
कोडरंग

1
@coderanger यदि कोई SAN फ़ील्ड है, तो CN फ़ील्ड को अधिकांश क्लाइंट द्वारा अनदेखा किया जाता है। यदि कोई SAN फ़ील्ड नहीं है, तो CN फ़ील्ड अधिकांश क्लाइंट्स के साथ काम करता है (और यदि वे मुझ पर पागल हो जाते हैं तो यह प्रदर्शित नहीं होता है)।
kubanczyk

1
वे आपको चुपचाप जज कर रहे हैं।
Womble

क्या SNI वर्चुअल मेजबानों के समान है, जहां एक सर्वर एक IP पते के साथ HTTP कॉन्फिगरेशन में परिभाषित कई होस्ट्स रखता है? (किसी प्रकार का बहुसंकेतन: एक अलग आईपी के साथ प्रत्येक प्रमाणपत्र के बजाय कई आईपी के लिए एक आईपी का उपयोग करना, जहां आईपीवी 4 इन दिनों एक दुर्लभ संसाधन हैं)?
फर्नांडो गेब्रियल

1
@FernandoGabrieli हाँ, यह TLS स्तर पर उसी प्रकार के नाम-आधारित सेटअप को सक्षम करता है।
हाकन लिंडक्विस्ट जूल

14

सैन के लिए खड़ा विषय वैकल्पिक नाम , और यह एक X509 प्रमाणपत्र संपत्ति है, और SNI एक विशेषता यह है कि SSL / TLS ग्राहक है, इस प्रकार एक पूरी तरह से अलग इकाई का समर्थन कर सकते है।

सैन के साथ एक प्रमाण पत्र का उपयोग करके आप क्लाइंट के एसएनआई का समर्थन नहीं करने पर भी एक आईपी पते पर कई HTTPS- सक्षम साइटों की मेजबानी कर सकते हैं । इस मामले में आप अपनी सभी साइटों के लिए एक प्रमाण पत्र रखते हैं, और इस तरह के प्रमाण पत्र में साइट के सभी नाम शामिल होने चाहिए ( ServerNameया ServerAliasअपाचे निर्देशांक में, या server_nameनगनेक्स में) क्योंकि यह सैन है । यह एक विरासत दृष्टिकोण का एक सबसेट है, जिसने "प्रत्येक अलग आईपी पते पर एक HTTPS- सक्षम साइट" का विस्तार किया। वर्तमान में केवल बड़े CDN स्टिक SAN के साथ हैं ।

एसएनआई का उपयोग करके आप एक आईपी पर कई HTTPS- सक्षम साइटों की मेजबानी कर सकते हैं, आप प्रत्येक साइट के लिए एक अलग x509 प्रमाण पत्र रखते हैं और इनमें से किसी का भी अन्य नाम उनके SAN संपत्ति में अन्य साइट के नामों का उल्लेख नहीं करते हैं, लेकिन TLS क्लाइंट (जैसे ब्राउज़र और कंसोल क्लाइंट जैसे wgetया curl) SNI का समर्थन करना चाहिए । यह एक आधुनिक दृष्टिकोण है, चूंकि पिछले OS एसएनआई आउट-ऑफ-द-बॉक्स का समर्थन नहीं करता था, आईई 6.x के साथ विंडोज एक्सपी था, अगर यह सही तरीके से याद है। आजकल आप देख सकते हैं सैन संपत्ति यदि आप खरीद वाइल्डकार्ड प्रमाण पत्र - के लिए उदाहरण के इस तरह के एक प्रमाण पत्र के लिए *.foobar.comएक में शामिल होंगे सामान्य नाम की *.foobar.comऔर एक सैन होगा foobar.com


1
तकनीकी रूप से, मुझे विश्वास नहीं है कि एक एसएसएल क्लाइंट एसएनआई को सपोर्ट कर सकता है (मेरी जानकारी के लिए यह टीएलएस एक्सटेंशन है जो एसएसएल में कभी नहीं दिखाई देता है)।
हाकिन लिंडक्विस्ट

3
सैन और एसएनआई दोनों को ग्राहक सहायता की आवश्यकता होती है। हालाँकि जब से SAN बहुत अधिक समय के लिए रहा है, यह अधिक व्यापक रूप से समर्थित है।
कास्परड

4

यह प्रमाणपत्र प्रक्रिया के दो भागों को मिलाता है।

A SAN एक विषय वैकल्पिक नाम है। यह कई डोमेन के लिए एक प्रमाण पत्र बनाने का एक तरीका है। आप केवल उन अन्य डोमेन को जोड़ते हैं जिन्हें आप प्रमाणपत्र में SAN क्षेत्र के लिए प्रमाण पत्र चाहते हैं। ब्राउज़र तब इन डोमेन पर भी वैधता स्वीकार करेगा।

SNI सर्वर नाम संकेत है और SSL का हिस्सा है। यह आपको एकल आईपी पर कई एसएसएल साइटों को होस्ट करने की अनुमति देता है क्योंकि वांछित सर्वर नाम एसएसएल हैंडशेक के साथ भेजा जाता है और सर्वर जवाब के लिए सही प्रमाण पत्र चुन सकता है।


0

यहाँ (संभवतः) अधिक मानव पठनीय उत्तर:

एसएनआई क्लाइंट साइड पर आयोजित किया जाता है और टीएलएस स्टैक बताता है "मैं एक सर्वर से बात करना चाहता हूं जिसका नाम [सर्वर एक्स] है।" सर्वर इस [सर्वर एक्स] स्ट्रिंग को देखता है और एक उपयुक्त प्रमाण पत्र के साथ उत्तर देता है। एक व्यावहारिक उदाहरण तब होता है जब किसी एकल सर्वर को कई डोमेन के लिए ट्रैफ़िक की आवश्यकता होती है। यदि क्लाइंट IP (DNS लुकअप देरी से बचने के लिए) का उपयोग करता है तो भी यह उपयोगी है, लेकिन प्रमाणपत्र CN ने IP का उल्लेख नहीं किया है।

सैन प्रमाणपत्रों में "इसके अलावा ज्ञात" की एक सूची है। इस तरह से सर्वर कई नामों के लिए एकल प्रमाणपत्र का उपयोग कर सकता है। एक ही प्रमाण पत्र और यहां तक ​​कि आईपी की एक सूची में कई डोमेन जोड़ सकते हैं।

जैसा कि आप देख सकते हैं, चीजें ओवरलैप होती हैं। एक या दोनों के बीच चयन करना निर्भर करता है कि किसी का नियंत्रण कहां है। कुछ ग्राहक SAN में नामों को नहीं पहचान सकते हैं और यह पता करने का एकमात्र तरीका है कि एसएनआई के आधार पर उचित प्रमाण पत्र प्रदान करना है। ऐसे परिदृश्य हैं जो सर्वर एकल प्रमाणपत्र के लिए एपीआई प्रदान करता है या क्लाइंट एसएनआई नहीं भेजता है। इन मामलों के लिए, SAN एकमात्र तरीका है।

मेरी कंपनी दोनों का उपयोग करती है। वे लचीलापन प्रदान करते हैं और पिछड़े और आगे संगतता को आसान बनाते हैं।

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