2008-11-09 11 views
8

मेरे पास एक वेब-सर्वर है, जो विभिन्न डोमेन-नामों परोसता है, लेकिन केवल एक आईपी-पता असाइन किया गया है। यह अपाचे में वर्चुअल होस्ट के साथ ठीक काम करता है। अब मैं वेबसाइटों के लिए एसएसएल-एन्क्रिप्टेड कनेक्शन चाहता हूं। मैं अलग-अलग vhosts के लिए अलग-अलग SSL-प्रमाणपत्र कैसे सेट कर सकता हूं?अपाचे पर vhosts के लिए मैं अलग-अलग SSL-प्रमाणपत्र कैसे सेट कर सकता हूं?

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

उत्तर

8

अद्यतन: 2013

ऐसा लगता है कि SNI अंत में पकड़ ले शुरुआत है के रूप में पुराने ब्राउज़र दूर गिर रहे हैं। यहां docs for Apache SNI हैं और यहां एक wikipedia article on SNI है जिसमें इसका समर्थन करने वाले ब्राउज़र पर एक चार्ट शामिल है। संक्षेप में, सभी प्रमुख ब्राउज़र समर्थित संस्करणों में इसका समर्थन करते हैं; यदि पुराने ब्राउज़र का समर्थन करना महत्वपूर्ण है, तो आपको इसे ध्यान में रखना पड़ सकता है।

------ पिछले जवाब ------------

एसएसएल मेजबान एक अनन्य IP पता/पोर्ट संयोजन से बंधा किया जाना चाहिए, इस प्रकार आप आभासी होस्टिंग उपयोग नहीं कर सकते (या कम से कम, इसमें केवल एक एसएसएल मेजबान प्रति आईपी पता हो सकता है)। यह इस तथ्य के कारण है कि https होस्ट से पहले एन्क्रिप्शन शुरू करता है: http में पैरामीटर भेजा जाता है, और इस प्रकार यह निर्धारित नहीं कर सकता कि होस्टफ़ोन से कौन से सिफर का उपयोग करना है - यह सब आईपी पता है।

HTTP को टीएलएस कमांड होने पर यह ठीक करना आसान होगा, इसलिए होस्टनाम के लिए पूछने के बाद यह एसएसएल शुरू कर सकता है, लेकिन किसी ने मुझसे नहीं पूछा।

निश्चित जवाब के लिए, http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts2

+2

दरअसल, आरएफसी 2817 अब है, जो HTTP कनेक्शन में टीएलएस-अपग्रेड करने की अनुमति देता है। यह अपाचे में लागू किया गया है। –

+0

लेकिन क्या ब्राउज़र अभी तक इसका समर्थन करते हैं? – DGM

2

देख AFAIK यह नाम आधारित आभासी mod_ssl का उपयोग कर मेजबानों के लिए अलग SSL प्रमाणपत्र स्थापित करने के लिए संभव नहीं है। आप विस्तृत कारण here पढ़ सकते हैं। एक वैकल्पिक आईपी आधारित आभासी मेजबान (जो शायद संभव/नहीं है नहीं एक बहुत ही संतोषजनक समाधान) का उपयोग हो सकता है - बस विभिन्न SSLCertificateFile निर्देशों सम्मिलित हैं, या आप mod_gnutls का उपयोग कर this विधि की कोशिश कर सकते।

+0

वाह, एसएनआई के लिए आरएफसी 2003 में शुरू किया गया था और फिर भी यह अभी तक पकड़ा नहीं गया है? मैं इस दावे से चिंतित हूं कि ब्राउज़र पहले से ही इसका समर्थन करता है। – DGM

4

दिए गए उत्तरों और विशेष रूप से मार्टिन बनाम लोविस द्वारा टिप्पणियों के संकेतों के बाद मैंने कुछ googling किया और this website about RFC 2817 and RFC 3546 पाया। आरएफसी 3546 एक अच्छा समाधान प्रतीत होता है।

1

आपको प्रत्येक vhost के लिए एक अलग आईपी: पोर्ट संयोजन की आवश्यकता होगी।

आरएफसी 3546 अभी तक संभव नहीं है। आईई केवल Vista के तहत चलते समय इसका समर्थन करता है, और आखिर में मैंने देखा कि सफारी इसे प्रबंधित नहीं करता है।

+0

हां, इस सुविधा का समर्थन करने वाले ब्राउज़र प्रतिबंधित हैं, लेकिन यह एक संभावित समाधान है। एक दयालुता, कि कोई 'सही' समाधान मौजूद नहीं है। आरएफसी 3546 एक अच्छे समाधान के लिए सबसे अच्छी उम्मीद है। उस समय के लिए आपको अधिक आईपी ऑर्डर करना होगा या ब्राउज़र को प्रतिबंधित करना होगा। – Mnementh

+0

हां, या एक अलग बंदरगाह पर चलने के बदसूरत अस्थायी समाधान। आरएफसी 3546 होगा, लेकिन वह दिन दुर्भाग्य से एक लंबा रास्ता तय है। – bobince

1

जबकि डीजीएम का उल्लेख किया गया सबकुछ सत्य है, वहां कुछ प्रमाणपत्रों के लिए एक अद्वितीय आईपी पते के लिए आवश्यकता के बारे में कुछ प्रयास किए गए हैं जिनमें mod_gnutls और TLS extensions का उपयोग किया गया है। वहाँ कुछ कमियां हैं, लेकिन वे आप के लिए स्वीकार्य हो सकता है।

1

अंत में यह संभव है!

  • मोज़िला फ़ायरफ़ॉक्स 2.0 या बाद
  • ओपेरा 8.0 या बाद में (TLS 1 के साथ: आप सर्वर नाम संकेत (SNI)

    ब्राउज़र, कि SNI समर्थन समर्थन करने के लिए दोनों सर्वर और ग्राहक की जरूरत है।1 सक्षम)

  • इंटरनेट एक्सप्लोरर 7.0 या बाद में (विस्टा, नहीं एक्सपी)
  • गूगल क्रोम
  • सफारी 3.2.1 पर मैक ओएस एक्स पर 10.5.6

यह दस्तावेज़ कॉन्फ़िगर करने के लिए कुदाल से पता चलता आपके सर्वर: SSL with Virtual Hosts Using SNI