2013-02-12 50 views
7

मैं एक रेल एप्लिकेशन विकसित कर रहा हूं जो SSL कनेक्शन का उपयोग करता है। मैं वर्तमान में तीसरे पक्ष के संसाधनों का उपयोग कर रहा हूं जो मानचित्र (OpenStreetMap) को लागू करने के लिए जेएस और सीएसएस फाइलें हैं। मैंने पहले ही इन संसाधनों (जेएस और सीएसएस) को अपने आवेदन में आयात करने की कोशिश की है, लेकिन जावास्क्रिप्ट कोड HTTP के माध्यम से बाहरी WMS तक पहुंचने का प्रयास करता है।Google क्रोम फोर्स HTTPS

समस्या यह है कि जब Google एचटीटीपीएस में होता है तो Google क्रोम HTTP से तृतीय-पक्ष संसाधनों तक पहुंच को अवरुद्ध कर रहा है।

इसलिए मैंने एप्लिकेशन के कुछ निश्चित पृष्ठों पर SSL अक्षम कर दिया और जिस तरह से मैं चाहता हूं HTTP या HTTPS को मजबूर करने की कोशिश की।

इस ब्लॉग के बाद: http://www.simonecarletti.com/blog/2011/05/configuring-rails-3-https-ssl/ और यह काम करता है।

लेकिन जब मैं उस पृष्ठ पर HTTP प्रोटोकॉल को मजबूर करता हूं जहां इन संसाधनों का उपयोग Google क्रोम का उपयोग करके किया जाएगा, तो यह अनंत लूप के कारण HTTPS कनेक्शन को मजबूर करता है।

यदि मैं क्रोम कैश साफ़ करता हूं (जो एचटीटीपीएस के साथ पहले से ही उसी पृष्ठ तक पहुंच चुका है) तो इसे HTTP के माध्यम से एक्सेस करने के लिए यह काम करता है। लेकिन अगर मैंने एचटीटीपीएस पेज तक पहुंचा है और HTTP के माध्यम से एक्सेस करने का प्रयास किया है, तो क्रोम एचटीटीपीएस कनेक्शन को एक अनंत लूप के रूप में मजबूर करता है।

सवाल यह है: क्या अनुरोध में कुछ ऐसा सेट कर सकता है जिससे क्रोम कनेक्शन स्वीकार कर सके?

सादर

उत्तर

10

मैं इस पर कुछ शोध कर रहा हूँ, और यह कि force_ssl = true रेल 3 पर चालू करने के लिए एक HSTS हैडर भेजने के लिए एप्लिकेशन का कारण बनता है पता चला है। इसके बारे में यहां कुछ जानकारी है: How to disable HTTP Strict Transport Security?

अनिवार्य रूप से, एचएसटीएस हेडर क्रोम (और फ़ायरफ़ॉक्स) को केवल एक निश्चित समय के लिए एचटीटीपीएस के माध्यम से आपकी साइट तक पहुंचने के लिए बताता है।

तो ... मेरे पास आपके पास अब जवाब है कि आप अपने क्रोम ब्राउज़र में about:net-internals पर जाकर और एचएसटीएस स्थिति को हटाकर अपनी खुद की एचएसटीएस सेटिंग साफ़ कर सकते हैं।

मुझे लगता है कि यहाँ जवाब आप मदद कर सकते हैं: Rails: activating SSL support gets Chrome confused

+0

धन्यवाद Skander एम! समस्या एचएसटीएस के साथ थी। मैंने इसे रैक-एसएसएल-एनफोर्सर मणि का उपयोग करके हल किया, जिससे एचएसटीएस की समयसीमा समाप्त हो गई। अब मैं एचआरटीपीएस को उन यूआरएल पर अक्षम कर सकता हूं जिन्हें मैं चाहता हूं भले ही क्रोम कैश एचटीटीपीएस को मजबूर करने के लिए सेट किया गया हो। सादर – user2064568