सेटिंग config.force_ssl
शामिल है ActionDispatch::SSL
। ActionDispatch::SSL
इस प्रकार (emphases स्पष्टता के लिए जोड़ा) डॉक्स कार्यक्षमता का वर्णन:
शामिल देखें यहाँ और ActionDispatch :: एसएसएल के लिये दस्तावेज यहाँ ।
डॉक्स
इस मिडलवेयर को जब स्टैक में जोड़ा जाता है config.force_ssl = true
, और इसमें सेट किए गए विकल्प पास किए जाते हैं config.ssl_options
। HTTP अनुरोधों को सुरक्षित करने के लिए यह तीन काम करता है:
TLS पुनर्निर्देशित: स्थायी रूप से http: // अनुरोधों को
उसी URL होस्ट, पथ, आदि के साथ डिफ़ॉल्ट रूप से सक्षम करके पुनर्निर्देशित करता है । config.ssl_options
गंतव्य URL (जैसे redirect: { host: "secure.widgets.com", port: 8080 }
) को संशोधित करने के लिए सेट करें , या redirect: false
इस सुविधा को अक्षम करने के लिए सेट
करें।
सुरक्षित कुकीज़: ब्राउज़रों को यह बताने के लिए कुकीज़ पर ध्वज सेट secure
करता है कि उन्हें http: // अनुरोधों के साथ नहीं भेजा जाना चाहिए। डिफ़ॉल्ट रूप से सक्षम। सेट
config.ssl_options
के साथ secure_cookies: false
इस सुविधा को अक्षम करने के लिए।
HTTP स्ट्रक्ट ट्रांसपोर्ट सिक्योरिटी (HSTS): इस साइट को TLS-only के रूप में याद रखने के लिए ब्राउज़र को बताता है और स्वचालित रूप से गैर-TLS अनुरोधों को पुनर्निर्देशित करता है । डिफ़ॉल्ट रूप से सक्षम। अक्षम करने के लिए कॉन्फ़िगर config.ssl_options
करें hsts: false
। सेट config.ssl_options
के साथ hsts: { … }
कॉन्फ़िगर HSTS रहे हैं:
expires
: कब तक, सेकंड में, ये सेटिंग चिपक जाएगी। चूक
180.days
(अनुशंसित)। ब्राउज़र प्रीलोड सूचियों के लिए अर्हता प्राप्त करने के लिए न्यूनतम आवश्यक है 18.weeks
।
subdomains
: true
सभी उप-डोमेन पर इन सेटिंग्स को लागू करने के लिए ब्राउज़र को बताने के लिए सेट करें । यह आपके कुकीज़ को एक उपडोमेन पर एक असुरक्षित साइट द्वारा अवरोधन से बचाता है। के लिए चूक true
।
preload
: विज्ञापन करें कि यह साइट ब्राउज़रों की HSTS सूचियों में शामिल हो सकती है। HSTS आपकी यात्रा को पहली यात्रा के अलावा हर यात्रा पर सुरक्षित रखता है क्योंकि इसने आपके HSTS शीर्षलेख को अभी तक नहीं देखा है। इस अंतर को बंद करने के लिए, ब्राउज़र विक्रेताओं में HSTS- सक्षम साइटों की एक बेक्ड-इन सूची शामिल है। अपनी साइट को शामिल करने के लिए https://hstspreload.appspot.com पर जाएं । HSTS को बंद करने के लिए, हेडर को छोड़ना पर्याप्त नहीं है। जब तक यह समाप्त नहीं हो जाता है तब तक ब्राउज़र को मूल HSTS निर्देश याद होगा। इसके बजाय, HSTS को तुरंत समाप्त करने के लिए ब्राउज़रों को बताने के लिए हेडर का उपयोग करें। सेटिंग hsts: false
एक शॉर्टकट है hsts: { expires: 0 }
।
अनुरोध के साथ पुनर्निर्देशन का विकल्प छोड़ सकते हैं exclude
:
config.ssl_options = { redirect: { exclude: -> request { request.path =~ /healthcheck/ } } }