मेरे पास कई वर्चुअल सर्वर के साथ एक वेब सर्वर है। जिनमें से केवल 1 एसएसएल है। समस्या यह है, क्योंकि SSL के लिए कोई कैटचेल सर्वर ब्लॉक नहीं है, अन्य साइट पर किसी भी https अनुरोध 1 SSL ब्लॉक द्वारा परोसा जाता है।
मेरा विन्यास, अनिवार्य रूप से, इस तरह दिखता है:
# the catch all
server {
listen 80 default;
# I could add this, but since I have no default cert, I cannot enable SSL,
# and this listen ends up doing nothing (apparently).
# listen 443;
server_name _;
# ...
}
# some server
server {
listen 80;
server_name server1.com;
# ...
}
# some other server ...
server {
listen 80;
server_name server2.com;
# ...
}
# ... and it's https equivalent
server {
listen 443;
ssl on;
server_name server2.com;
# ...
}
अब चूंकि 443 के लिए कोई डिफॉल्ट श्रोता नहीं है, इसलिए अनुरोध जैसे https://server1.com
कि server2.com
https ब्लॉक द्वारा दिया जाएगा । इस के लिए तर्क इस प्रकार server_name
में डॉक्स।
यदि कोई मेल नहीं है, तो कॉन्फ़िगरेशन फ़ाइल में एक सर्वर {...} ब्लॉक निम्न क्रम के आधार पर उपयोग किया जाएगा:
- मेल खाने वाले निर्देश के साथ सर्वर ब्लॉक को [डिफ़ॉल्ट | default_server] के रूप में चिह्नित किया गया है।
- मिलान सुनने के निर्देश के साथ पहला सर्वर ब्लॉक (या अंतर्निहित 80 सुनें;)
इस समस्या का पसंदीदा समाधान क्या है? क्या मुझे अपने कैच ऑल सर्वर ब्लॉक के लिए डमी सर्टिफिकेट सेट करने की जरूरत है ताकि मैं 443 पर सुनूं और खराब अनुरोधों को संभाल सकूं? क्या कोई ऐसा पैरामीटर है जिससे मैं अनजान हूं, एक सटीक hostname के साथ मेल खाता है server
?