विशिष्ट वर्चुअल होस्ट तक https एक्सेस कैसे अक्षम करें?


10

ठीक है, इसलिए मेरे पास अपाचे सर्वर है जो निम्नलिखित निर्देशों के साथ सेट है:

NameVirtualHost *:80

<VirtualHost *:80>  
ServerName example1.com  
ServerAlias www.example1.com  
DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
ServerName example2.com
ServerAlias *.example2.com
DocumentRoot /var/www/example2
</VirtualHost>

<VirtualHost example1.com:443>
DocumentRoot /var/www/html
ServerName example1.com:443
SSLEngine on
...
</VirtualHosts>

तो example1.com में SSL समर्थन है, और इसे http: // example1.com या https: // example1.com के माध्यम से एक्सेस किया जा सकता है। हालाँकि, मेरे पास अपने ब्राउज़र में https: // example2.com आने पर https: // example1.com दिखाने का यह अनपेक्षित दुष्प्रभाव है। मैं जो करना चाहता हूं, वह मूल रूप से https: // example2.com को किसी तरह से अक्षम करना है या इसे http: // example2.com पर फिर से निर्देशित करना है, ताकि मुझे यात्रा करने पर चेतावनी और गलत साइट न मिले।

जवाबों:


7

जब तक example1 और example2 अलग-अलग IP पते पर हैं, तब तक आप चेतावनी देने से बच नहीं पाएंगे, या आपको SSL प्रमाणपत्र मिलता है, जिसमें दोनों नाम शामिल हैं - एक त्रुटि पृष्ठ या पुनर्निर्देशन SSL कनेक्शन स्थापित होने के बाद तक नहीं हो सकता।

कहा जा रहा है, इन लाइनों के साथ कुछ काम करना चाहिए:

NameVirtualHost *:443
<VirtualHost *:443>
  ServerName example1.com
  SSLEngine on
  #...
</VirtualHost>
<VirtualHost *:443>
  ServerName example2.com
  SSLEngine on
  # same certificate config here as on example1, unless you're wanting to use TLS SNI
  # then, let's redirect the user to non-SSL
  Redirect permanent / http://example2.com/
</VirtualHost>

धन्यवाद! मुझे लगता है कि मुझे NameVirtualHost के निर्देश याद आ रहे थे और अपाचे ने सोचा कि मैं दो आभासी मेजबानों को एक-दूसरे से टकराते हुए बनाने की कोशिश कर रहा हूं। दिलचस्प बात यह है कि क्रोम इस रीडायरेक्ट पर कोई चेतावनी नहीं दे रहा है ... लेकिन मैं इसके बारे में चिंतित नहीं हूं, बस नहीं चाहता कि मेरी एसएसएल साइट अन्य डोमेन नामों के तहत दिखाई दे।
nearengine

क्या गैर-एसएसएल में गिरावट के लिए अमान्य सीट्स को जोड़ने के समान नहीं है? मुझे लगता है कि आप सीधे अपने vhost निर्देश पर सीट्स के नाम के लिए _fake कर सकते हैं।
m3nda

0

मुझे नहीं लगता कि आपको रखना चाहिए: 443 ServerName example1.com:443 पर

ये सही कॉन्फ़िगर होना चाहिए

<VirtualHost example1.com:443> //change example1.com to ip address is a good habit
DocumentRoot /var/www/html
ServerName example1.com
SSLEngine on
...
</VirtualHosts>

0

इसे पूरा करने के लिए आपके पास सर्वर नेम इंडिकेशन (SNI) होना चाहिए। कृपया लिंक देखें: http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI विवरण के लिए।


1
डाउन वोट दिया क्योंकि आपने एक उत्तर या उदाहरण नहीं दिया, केवल एक लिंक (जो स्थायी रूप से वहां होने की गारंटी नहीं है)
क्रिस ब्लूम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.