चेकआउट / खाता ही नहीं, बल्कि फ्रंटएंड के सभी पृष्ठों पर बल HTTPS


10

बैकएंड में, मैंने फ़्रंट में सिक्योर यूआरएल का उपयोग किया है । लेकिन उपयोगकर्ता अब भी चेक-आउट / खाता पृष्ठों को छोड़कर, गैर-सुरक्षित URL के माध्यम से मेरी साइट पर जा सकते हैं।

मैं सभी पृष्ठों पर सुरक्षित URL को बाध्य करना चाहता हूं। मैं अभी क्या कर रहा हूँ असुरक्षित आधार URL को "https: // ...." में बदलें

यह काम करने लगता है। यदि उपयोगकर्ता HTTP का उपयोग करते हैं, तो उन्हें https पर पुनर्निर्देशित किया जाएगा। लेकिन मुझे आश्चर्य है कि क्या यह करने का सही तरीका है। कोई साइड इफेक्ट?


ive ने सुना कि सही तरीका config.xml में सुरक्षित मार्ग को ओवरराइड करना है

जवाबों:


16

डिफ़ॉल्ट उत्तर है, असुरक्षित बेस url को https: // पर सेट करें। आपके सेटअप के आधार पर यह पहले से ही रीडायरेक्ट के लिए पर्याप्त है यदि उपयोगकर्ता http: // का उपयोग करने का प्रयास करते हैं।

हो सकता है कि वेबसर्वर स्तर पर एक रीडायरेक्ट बेहतर हो, क्योंकि यह पहले php के माध्यम से जाने वाले अनुरोधों से बचता है।

और अगर आप वास्तविक पूरी तरह से सुरक्षित समाधान चाहते हैं, तो आपको अपनी वेबसाइट https://hstspreload.appspot.com/ पर जोड़ना चाहिए । लेकिन इसके साथ सावधान, अगर आपको अपना प्रमाण पत्र बदलने की आवश्यकता है, तो यह बड़ी समस्याएं पैदा कर सकता है। अपने Hoster को इस भाग की देखभाल करने दें।


प्रमाणपत्र क्यों बदला? HSTS "केवल" बनाता है, कि ब्राउज़र अब तक केवल HTTPS के माध्यम से पृष्ठ तक पहुँचता है। मैंने इसके लिए एक मॉड्यूल बनाया: github.com/ikonoshirt/StrictTransportSecurity
Fabian Blechschmidt

1
हो सकता है कि मैंने इसे सर्टिफिकेट पिनिंग के साथ थोड़ा सा मिला दिया। सोचा कि प्रीलोडिंग में प्रमाण पत्र के लिए फिंगरप्रिंट भी होगा
फ्लाइंगमैन

2
@ फ़ेंसिंगमैन: यदि आप क्रोमियम स्रोत में वास्तविक एचएसटीएस प्रीलोड सूची को देखते हैं , तो अधिकांश प्रविष्टियों में प्रमाणपत्र फ़िंगरप्रिंट या सॉर्ट की कोई चीज़ नहीं होती है, बस डोमेन नाम।
लेह ब्रीनेकी

4

आप इसे अपाचे में .htaccess के साथ कर सकते हैं। इन पंक्तियों का उपयोग करें:

############################ Force SSL ############################
RewriteCond %{HTTP_HOST} !^localhost$
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
############################ Force SSL ############################

4

किसी को भी इस तरह ठोकर खाने के लिए (जैसे मैंने किया)

Htaccess का उपयोग न करें। एडमिन गो के तहतStores -> General -> Web and change -> Use Secure URLs on Storefront -> Yes and Use Secure URLs in Admin -> Yes

किसी भी फाइल को संपादित करने की कोई आवश्यकता नहीं है।


1
वाह, अच्छा समय। कल जवाब दिया। मेरा मानना ​​है कि यह उत्तर होना चाहिए ... कम से कम, यह बिना किसी अपाचे को छूने के लिए मेरे लिए फ्रंटएंड और एडमिन पर https मजबूर कर रहा है। वर्तमान में चयनित उत्तर HTTPS को सक्षम बनाता है, लेकिन यह उत्तर "https" को बाध्य करता है।
जो फ्लेचर

1
यह वही है जो प्रश्नकर्ता ने कहा कि उन्होंने कोशिश की और यह काम नहीं किया
डोम

2

मैंने पिछले समाधानों की कोशिश की है और भले ही वे काम कर रहे हों, उन्होंने मुझे व्यवस्थापक पैनल से बाहर कर दिया (कारण पूरी तरह से समझ में नहीं आता)।

व्यवस्थापक पैनल में फिर से जाने के लिए मुझे phpmyadmin में जाना पड़ा और डेटाबेस टेबल core_config_data में जाना पड़ा और दोनों रास्तों को बदलना पड़ा : web / safe / use_in_adminhtml और web / unsecure / base_url फिर से व्यवस्थापक पैनल में वापस आ गए। और अगर आप डेटाबेस में संपादन करना है, तो कैश फ़ोल्डर को खाली करना न भूलें ...

इसलिए मैंने निम्नलिखित .htaccess समाधान को लागू किया, जो मुझे व्यवस्थापक के रूप में अच्छी तरह से लॉगिन करने देता है

# AFTER THIS SECTION
############################################
## workaround for HTTP authorization
## in CGI environment
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# PUT THIS 
############# ALL PAGES HTTPS #################
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !/admin/
RewriteCond %{REQUEST_URI} !/downloader/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
############# ALL PAGES HTTPS #################

आशा है कि यह किसी की मदद करता है


0

Http के माध्यम से पहुँचने पर .htaccess पर अधिकांश दृष्टिकोण घर के अधिकांश पृष्ठों को पुनर्निर्देशित कर देंगे।

उदाहरण: http://www.mystore.com/productA.html => http://www.mystore.com/

इसके बजाय https://www.mystore.com/productA.html

मैंने इसे निम्नलिखित .htaccess rewrite (केवल Apache, निश्चित रूप से) के साथ हल किया:

#Force SSL
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

देखें स्रोत

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.