पुराने डोमेन से ssl के साथ नए में Nirectx पुनर्निर्देशित


10

मैं से मेरी साइट के लिए डोमेन नाम बदलने के लिए कोशिश कर रहा हूँ https://www.myolddomain.se/करने के लिएhttps://www.mynewdomain.se/

समस्या यह है कि अपने पुराने डोमेन के लिए मैंने सभी पृष्ठों पर एसएसएल को मजबूर किया और इसलिए Google और अन्य साइटों पर सभी लिंक https के साथ जुड़े हुए हैं। जब मैं एक https लिंक से पुराने डोमेन पर जाने का प्रयास करता हूं तो मुझे प्रमाणपत्र त्रुटि मिलती है। तो मेरा सवाल यह है: मैं इस त्रुटि को प्राप्त किए बिना, https से जुड़े सभी पृष्ठों को किसी अन्य https सुरक्षित डोमेन, nginx में कैसे पुनर्निर्देशित कर सकता हूं?

मैंने कुछ शोध किए और वेब पृष्ठों को पुनर्निर्देशित करने के लिए इस समाधान को पाया, जो अब मेरी कॉन्फ़िगरेशन फ़ाइल में डाला गया है। हालाँकि मुझे अभी भी प्रमाणपत्र में त्रुटि है!

server {
        server_name .myolddomain.se;
        return 301 https://www.mynewdomain.se$request_uri;
}

लेकिन मैं सिर्फ यह काम करने के लिए नहीं मिल सकता है! अगर कोई भी जवाब दे सकता है तो मैं बहुत आभारी रहूंगा

जवाबों:


11

समाधान क्लाइंट क्षमताओं, आपके बजट और वास्तुकला विशिष्टताओं पर निर्भर करता है।

1. यदि दोनों डोमेन एक ही आईपी पते पर होस्ट किए गए हैं और आपके पास कोई दूसरा नहीं है:

यदि ग्राहक TLS SNI एक्सटेंशन का समर्थन करता है:

server {
    listen X.X.X.X:443 ssl;
    ssl_certificate /path/to/myolddomain.cert;
    ssl_certificate_key /path/to/myolddomain.key;
    server_name .myolddomain.se;
    return 301 https://www.mynewdomain.se$request_uri;
}


server {
    listen X.X.X.X:443 ssl;
    ssl_certificate /path/to/mynewdomain.cert;
    ssl_certificate_key /path/to/mynewdomain.key;
    server_name .mynewdomain.se;

    [ ... ] # Your stuff

}

यदि यह x509 एक्सटेंशन को नहीं समझता है SubjectAltNameऔर आप एक नया प्रमाणपत्र जेनरेट कर सकते हैं तो दोनों डोमेन के लिए एक अद्वितीय प्रमाणपत्र मांग सकते हैं। कॉन्फ़िगरेशन जैसा दिखना चाहिए:

server {
    listen X.X.X.X:443 ssl default_server;
    ssl_certificate /path/to/domain.cert;
    ssl_certificate_key /path/to/domain.key;
    server_name _;
}

server {
    listen X.X.X.X:443;
    server_name .myolddomain.se;
    return 301 https://www.mynewdomain.se$request_uri;
}


server {
    listen X.X.X.X:443;
    server_name .mynewdomain.se;

    [ ... ] # Your stuff

}

2. यदि प्रत्येक डोमेन एक अलग आईपी पते पर है या यदि यह उसी पर है, लेकिन आपके पास एक और हो सकता है

सबसे सामान्य समाधान, दो अलग-अलग आईपी पर सुनें (आमतौर पर एक अतिरिक्त सार्वजनिक आईपी "बस" आपके होस्टिंग प्रदाता पर खरीदने का एक विकल्प है):

server {
    listen X.X.X.X:443 ssl;
    ssl_certificate /path/to/myolddomain.cert;
    ssl_certificate_key /path/to/myolddomain.key;
    server_name .myolddomain.se;
    return 301 https://www.mynewdomain.se$request_uri;
}

server {
    listen Y.Y.Y.Y:443 ssl;
    ssl_certificate /path/to/mynewdomain.cert;
    ssl_certificate_key /path/to/mynewdomain.key;
    server_name .mynewdomain.se;

    [ ... ] # Your stuff

}

1
आपको बहुत - बहुत धन्यवाद! इस जवाब ने मेरे लिए पूरी तरह से काम किया, और मैं और अधिक पूरी तरह से कामना नहीं कर सकता था। मैं बहुत आभारी हूँ, धन्यवाद!
7:24 पर user246341
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.