2012-06-07 14 views
7

समस्यापुनर्निर्देशन SSL आवश्यकता

से पहले 'www' के लिए मैं वर्तमान में समस्या जहां https://domain.comhttps://www.domain.com पर रीडायरेक्ट नहीं करता और किसी अविश्वसनीय SSL प्रमाणपत्र से पता चलता है।

यह संबंधित है जो एक गहरे लाल रंग का-ऑन-रेल समाधान redirect to 'www' before force_ssl

प्रश्न

वहाँ से पहले में SSL आवश्यकता किक www डोमेन पर रीडायरेक्ट करने के लिए एक रास्ता है है के लिए?

मैं PHP का उपयोग कर रहा हूं।

+0

संभावित डुप्लिकेट [गैर-www और http से http पर पुनर्निर्देशित करें] (http://stackoverflow.com/questions/10725357/redirect-https-to-non-www-and-http-to-www) – Bruno

+0

@ ब्रूनो ने कई मामलों को देखा लेकिन कोई भी – williamcarswell

+0

द्वारा दिए गए उत्तर को परिभाषित नहीं करता है, यह सुनिश्चित नहीं है कि आपका क्या मतलब है।मैं आपके उत्तर देने के लिए दूसरे प्रश्न को दिए गए उत्तर को कॉपी या पेस्ट कर सकता हूं। (जो कुछ भी सचमुच कहा गया था उतना ही कम; वह एकमात्र चीज जो वह नहीं कहती है वह यह है कि आप दोनों के लिए प्रमाणित प्रमाण प्राप्त कर सकते हैं।) इस बारे में कई सवाल हैं। एसएफ पर एक और है: http://serverfault.com/a/360985/47187 – Bruno

उत्तर

18

एचटीटीपीएस टीएलएस/एसएसएल पर HTTP है (RFC 2818 देखें), जो किसी भी HTTP यातायात भेजने से पहले एसएसएल/टीएलएस कनेक्शन स्थापित करता है। एसएसएल/टीएलएस कनेक्शन स्थापित होने के बाद कोई भी पुनर्निर्देशन (mod_rewrite, कस्टम PHP कोड या अन्य के माध्यम से) हमेशा लागू होगा।

ऐसा नहीं करना वास्तव में एक सुरक्षा समस्या होगी, क्योंकि एक हमलावर प्रमाण पत्र सत्यापित होने से पहले ग्राहक को फिर से लिख सकता है और पुनर्निर्देशित कर सकता है।

आप https://domain.com से https://www.domain.com रीडायरेक्ट करना चाहते हैं, तो प्रमाणपत्र https://domain.com के लिए प्राप्त domain.com (और फिर, प्रमाण पत्र https://www.domain.com के लिए प्राप्त www.domain.com के लिए वैध होना चाहिए) के लिए मान्य होना चाहिए।

(आप सर्वर नाम संकेत के साथ दो अलग-अलग प्रमाण पत्र यदि दो मेजबानों एक ही आईपी पते पर सेवा कर रहे हैं, लेकिन यह नहीं बल्कि जटिल है इस्तेमाल कर सकते हैं।)

सबसे आसान होगा एक प्रमाण पत्र है कि दोनों के लिए मान्य है प्राप्त करने के लिए domain.com और www.domain.com। यह एकाधिक विषय वैकल्पिक नाम प्रविष्टियों के साथ एक प्रमाणपत्र का उपयोग करके किया जा सकता है। अधिकांश सीए ऐसे प्रमाणपत्र जारी करने में सक्षम होना चाहिए। कुछ अतिरिक्त शुल्क के बिना करते हैं।

1

HTTP प्रोटोकॉल के माध्यम से एक रीडायरेक्ट प्रतिक्रिया जारी की जाती है। ऐसी प्रतिक्रिया/आदेश प्राप्त करने के लिए, ग्राहक को पहले एक HTTP कनेक्शन स्थापित करने की आवश्यकता होती है। यदि ग्राहक HTTP_S_ कनेक्शन स्थापित करने का प्रयास कर रहा है, तो SSL बातचीत को पहले पूरा करने की आवश्यकता है।

दूसरे शब्दों में, नहीं। यूआरएल https://domain.com आपके ऐप के लिए अमान्य है। किसी भी ग्राहक को इस विशेष पते के बारे में भी पता नहीं होना चाहिए और इसलिए इसे एक्सेस करने का प्रयास नहीं करना चाहिए। आपको यह यूआरएल कहीं भी देने से बचना चाहिए ताकि ग्राहक इसका उपयोग करने की कोशिश न करें। वास्तव में, आप उस डोमेन के लिए एक HTTPS सर्वर नहीं चलाना चाहते हैं, इसलिए आपको इसे बंद करना चाहिए, इसलिए क्लाइंट domain.com से HTTPS के माध्यम से कनेक्ट नहीं हो पाएंगे।

0

सबसे अच्छा समाधान मैं पाया है ताकि आप एक ही प्रमाण पत्र में www और गैर- www हो सकता है और दोनों मान्य हैं विषय वैकल्पिक नाम के साथ कोई नया SSL प्रमाणपत्र खरीदने के लिए बस है। इस तरह आप सुरक्षित रूप से https://www को https: // पारदर्शी रूप से और बिना किसी प्रमाणपत्र त्रुटियों के सुरक्षित रूप से रीडायरेक्ट कर सकते हैं।

संबंधित मुद्दे