ruby on rails HTTP सख्त परिवहन सुरक्षा को कैसे अक्षम करें?




ruby-on-rails apache (4)

यह अपाचे के साथ कोई समस्या नहीं है, लेकिन इस तथ्य के साथ कि रेल एक एचएसटीएस हेडर भेजता है।

क्रोम में, आप एचएसटीएस राज्य को इस about:net-internals में जाकर साफ़ कर सकते about:net-internals इंटर्नल्स , जैसा कि इंपीरियल वायलेट में वर्णित है : क्रोम में एचएसटीएस यूआई । आपको कैश को भी साफ़ करना पड़ सकता है, क्योंकि config.force_ssl = true भी 301 (स्थायी) पुनर्निर्देशन का उपयोग करता है।

इसके अलावा, इस उत्तर के अनुसार, आप अपने आवेदन को अधिकतम आयु = 0 के साथ एक एसटीएस हेडर भेज सकते हैं। आपके नियंत्रक में:

response.headers["Strict-Transport-Security"] = 'max-age=0'

मेरे पास config.force_ssl = true साथ एक रेल अनुप्रयोग था, लेकिन अब मुझे एसएसएल एन्क्रिप्शन नहीं चाहिए, लेकिन मेरा ऐप अभी भी https पर रीडायरेक्ट कर रहा है। मैंने पढ़ा यह अपाचे पर एक HTTP सख्त परिवहन सुरक्षा समस्या है। मैं इसे कैसे अक्षम कर सकता हूं?


मैंने पाया कि मैं क्रोम में एचएसटीएस एंट्री नहीं हटा सका क्योंकि मैं विकास के लिए आईपी एड्रेस का उपयोग कर रहा था। मुझे प्रविष्टि को हटाने के लिए chrome://net-internals/#hsts नहीं मिल सका। मैंने पाया कि क्रोम प्रविष्टियों को स्टोर करता है ../AppData/local/Google/Chrome/User डेटा / डिफ़ॉल्ट / परिवहन सुरक्षा इसलिए मैंने अभी फ़ाइल को हटा दिया है। यह निश्चित रूप से सभी एचएसटीएस अनुरोधों को हटा देता है, लेकिन मुझे संदेह है कि उन्हें समय के साथ पुनर्निर्मित किया जाएगा।


बस @ ब्रूनो के जवाब को इंगित करना चाहता था और @ जोवन डिक के सुझाव सत्य हैं और रेल / अपाचे के संदर्भ से बाहर लागू किए जा सकते हैं। मैं PHP और Nginx का उपयोग कर रहा हूँ। PHP के पास मेरे मामले में इसके साथ कुछ लेना देना नहीं है, लेकिन यहां Nginx के साथ कदम हैं:

//sorry here's the nginx.conf part first, can't figure out how to mix multi-line 
//code with an ordered list

server {
   #...
   #change:
   # add_header  Strict-Transport-Security "max-age=315360000; includeSubdomains";     
   #to:
   add_header  Strict-Transport-Security "max-age=0;";
   #...
}
  1. अपना "ब्राउज़र इतिहास" साफ़ करें। @ जोवन डिक के सुझाव पर स्पष्टीकरण के लिए, मुझे लगता है कि आपको "ब्राउज़िंग इतिहास" को साफ़ करने की आवश्यकता है क्योंकि कैश साफ़ करना मेरे लिए काम नहीं करता है (क्रोम / फ़ायरफ़ॉक्स पर परीक्षण किया गया है, अगर आप और जानते हैं तो कृपया टिप्पणी जोड़ें)।

  2. nginx.conf फ़ाइल (ऊपर कोड देखें)

  3. सर्वर पुनरारंभ करें

    [email protected]:~# /etc/init.d/nginx restart

इसके बाद, आप nginx add_header Strict.. को आपके पास पहले से कमांड को वापस कर सकते हैं। बस सुनिश्चित करें कि आप चरण 1-3 दोबारा दोहराएं।


चित्रित आईडी इस पर थोड़ा सा विचार पेश करती है। कैश टाइम को 0 पर सेट करना सबसे अच्छा शर्त है और यदि आप इसे बंद करते हैं तो आपको क्लाइंट ब्राउज़र को साफ़ करने के लिए इसे सप्ताहों में 0 पर छोड़ना होगा। यदि आपको क्रोम (अपने ब्राउज़र के लिए) में एचएसटीएस को साफ़ करने की आवश्यकता है तो आप अपने विशिष्ट ब्राउज़र पर अपनी साइट के कैश को साफ़ करने के लिए पता बार में chrome://net-internals/#hsts का उपयोग कर सकते हैं। नीचे "द्वार" के साथ संयुक्त यह उपयोगी हो जाता है।

आप कस्टम हेडर => कुंजी को सेट / स्पूफिंग करके अस्थायी एचएसटीएस मोड सेट कर सकते हैं। असल में यदि कोई विशेष अनुरोध हेडर मौजूद है, और यह एक कुंजी से मेल खाता है, तो आपको जो भी चाहिए उसे कैश टाइम के साथ एचएसटीएस सेट करें। इससे आप सभी ट्रैफिक के लिए एचएसटीएस चालू या बंद कर सकते हैं। वैश्विक स्तर पर सक्षम होने से पहले एचएसटीएस की कोशिश करने के लिए उपयोगी (यह सुनिश्चित करने के लिए कि सभी संपत्तियां लोड हो रही हैं)। अगर आप कुछ मरम्मत की जाती है (आपको परीक्षण के लिए कमरा छोड़कर) अस्थायी रूप से क्लाइंट कैश को साफ़ करना चाहते हैं तो भी उपयोगी।







hsts