हाल ही में Apache2 को संस्करण 2.2.31 में अपग्रेड करने के बाद मुझे SSL VirtualHost सेटअप में एक अजीब व्यवहार मिला।
मेरे द्वारा होस्ट की जा रही वेबसाइट में से कुछ क्लाइंट के Server Name Identification
बारे में जानते हुए भी डिफ़ॉल्ट होस्ट के लिए प्रमाणपत्र दिखा रहे थे , और यह केवल उनमें से कुछ के साथ हुआ। यह सामान्य फ़ायरफ़ॉक्स / क्रोम के पासपोर्ट-चेतावनी के रूप में दिखाता है कि अगर आप अपने घर के बैंकिंग को ब्राउज़ कर रहे हैं तो संभवतः घोटाला किया जा सकता है, लेकिन यह बस ऐसा नहीं था।
स्पष्ट होने के लिए, यदि सर्वर host.hostingdomain.org
का अपना एसएसएल है, तो https://www.hostedsite.org
रिपोर्ट प्रमाण पत्र तक पहुंचने का प्रयास करता है host.hostingdomain.org
, लेकिन कुछ https://www.hostedsite.me
ने सही प्रमाण पत्र की सूचना दी।
सभी साइटों को एक ही आईपी पते पर, पोर्ट 443 पर होस्ट किया जाता है। सच्चाई यह है कि वर्चुअलहॉस्टिंग HTTP साइड पर काम करता है और एसएनआई-जागरूक क्लाइंट को स्वचालित रूप से एसएसएल को रीडायरेक्ट करता है, इसलिए यह एसएनआई-अनजान क्लाइंट के साथ बैकवर्ड संगत है।
आपत्तिजनक VirtualHosts के लिए त्रुटि लॉग की जांच करने पर निम्नलिखित पाठ दिखाई दिया
[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)
और वास्तव में vhost को SSLCertificateFile के साथ सही ढंग से कॉन्फ़िगर किया गया था।
प्रश्न स्पष्ट है: इसे कैसे ठीक करें?