2012-04-04 21 views
5

मैं निम्नलिखित कोड के साथ HTTPS के माध्यम से लोड किए गए पृष्ठ पर Disqus लोड कर रहा हूं, जैसा कि this answer में सुझाया गया है।मैं Disqus को सभी अनुरोधों पर HTTPS का उपयोग करने के लिए कैसे मजबूर करूं?

<div id="disqus_thread"></div> 
    <script type="text/javascript"> 
     var disqus_shortname = 'our-shortname'; 
     (function() { 
      var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; 
      dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js?https'; 
      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); 
     })(); 
    </script> 

ध्यान दें कि मैं embed.js के अनुरोध बदल दिया है https बजाय http होने के लिए, और मैं भी अनुरोध के अंत तक ?https जोड़ दिया है, जो मेरा मानना ​​है कि HTTPS को बलपूर्वक लागू माना जाता है।

प्रारंभिक अनुरोध एचटीटीपीएस के माध्यम से योजनाबद्ध है, लेकिन यह HTTP के माध्यम से माध्यमिक अनुरोध करता है, जो Chrome is hating (मुझे पैडलॉक आइकन पर लाल क्रॉस मिलता है)।

क्रोम कंसोल से:

The page at https://our-website.com/blog-post-name ran insecure content from http://juggler.services.disqus.com/event.js?thread=635675380&forum=our-shortname...[long query string] 

इस Disqus सभी अनुरोधों पर SSL का उपयोग करने के लिए सही विधि है, या मैं एक चरण छूट गया होगा?

धन्यवाद।

उत्तर

6

यह डिस्कस के भीतर ही एक समस्या प्रतीत होता है। हमने कुछ ड्रूपल साइटों में एक ही दृष्टिकोण के साथ एसएसएल के माध्यम से डिसकस ठीक काम किया था, लेकिन हाल ही में डिस्कस ने आईई और क्रोम दोनों में एसएसएल चेतावनियां उत्पन्न की हैं जैसा आपने वर्णन किया है।

मैंने कुछ खोदने का काम किया, और मुझे लगता है कि dISQUS.useSSL फ़ंक्शन जो embed.js में परिभाषित है और thread.js में बुलाया गया है, कुछ यूआरएल अपडेट करता है (विशेष रूप से ["disqus_url", "realtime_url", "uploads_url" ]) डिस्कस्कस जेसन सेटिंग्स में https को http में https के साथ अपने यूआरएल में बदलकर सेटिंग में पाया जाता है। Juggler_url को वही उपचार नहीं मिलता है, और इसलिए इसे SSL के माध्यम से लोड करने के लिए अपडेट नहीं किया गया है। मुझे यकीन नहीं है कि juggler का उद्देश्य क्या है, लेकिन ऐसा लगता है कि वह URL (http://juggler.services.disqus.com/) किसी भी मामले में SSL के माध्यम से लोड नहीं होगा, इसलिए यदि यह यूआरएल को https में बदल दिया गया हो, यह अभी भी काम नहीं करेगा।

तो शायद डिस्कस ने हाल ही में बदलाव किया है, क्योंकि हमने पहले यह काम किया था? हम उन लोगों के साथ इस अप ले जा रहे हैं, क्योंकि यह हमारी ओर से कोई config मुद्दा हो प्रतीत नहीं होता है ...

अद्यतन:

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

+0

आपके शोध को साझा करने के लिए धन्यवाद। अगर Disqus के कुछ जवाब हैं तो हमें पोस्ट रखें। – doctororange

+0

मैंने समाधान के साथ ऊपर दिए गए उत्तर को अपडेट किया है ... – stockli

+0

हमारा लगता है कि काम करना शुरू हो गया है, इसलिए मुझे उम्मीद है कि उन्होंने इस मुद्दे को ठीक कर दिया है। एक बार फिर धन्यवाद। – doctororange

1

मुझे पिछले कुछ महीनों से इस समस्या को बंद कर दिया गया है और इसे पूरी तरह से Disqus को अक्षम करने के लिए मजबूर किया गया है। शुरुआत में मैंने यह देखने के लिए Disqus से संपर्क किया कि क्या वे स्विच कर सकते हैं जो गैर-एसएसएल अनुपालन सुविधा को उनके पक्ष में अक्षम कर देता है और यह थोड़ी देर के लिए काम करता था लेकिन मिश्रित सामग्री की समस्या फिर से चल रही थी।

ऐसा लगता है कि Disqus इसके count.js जावास्क्रिप्ट के https संस्करण को मजबूर करने के बावजूद, count.js अभी भी किसी कारण से securecdn.disqus.com के बजाय mediacdn.disqus.com पर रीडायरेक्ट करता है। यदि कोई प्लगइन एडिटर में मैन्युअल रूप से सुरक्षित करता है, तो रीडायरेक्ट को safecdn.disqus.com पर रीडायरेक्ट करने के लिए मजबूर करता है, सीडीएन को पहली कॉल में समस्या गायब हो जाती है लेकिन सीडीएन को बाद में कॉल स्ट्रिंग के साथ कॉल करता है? Https गिनती में जोड़ा जाता है। जेएस कॉल, रीडायरेक्ट बस वापस mediacdn.disqus.com पर वापस आ जाता है। मैंने कई बार कोशिश की है।

इस मुद्दे के बारे में कष्टप्रद बात यह है कि मिश्रित सामग्री अधिसूचना बनाने वाली मेरी साइट पर प्रश्न में एसएसएल पृष्ठ में कोई टिप्पणी अनुभाग नहीं है। तो Disqus पृष्ठ पर अपने जावास्क्रिप्ट को अनिवार्य रूप से लोड कर रहा है।

मुझे डिस्कस पसंद है लेकिन यह मेरे लिए अविश्वसनीय है कि वे उपयोगकर्ताओं को जावास्क्रिप्ट को चुनिंदा रूप से अक्षम करने या सभी मामलों में काम करने वाले सुरक्षित सीडीएन संस्करण को लागू करने के द्वारा इस समस्या को ठीक नहीं करेंगे। मुझे आशा है कि वे इसे समझ लेंगे।

उन्होंने मुझे बताया कि Disqus 2012 HTTPS का समर्थन नहीं करता है (हालांकि यह भविष्य में होगा)।

2

इस लेख है, जो समाधान हाथ मिला: http://help.disqus.com/customer/portal/articles/542119-can-disqus-be-loaded-via-https-

मूल रूप से यह संभव नहीं (अभी तक) है Disquss 2012 के साथ है, लेकिन इसे बंद करने और एम्बेड src बदल तो यह https का उपयोग करता है: // और जोड़ सकता हूँ? https param:

dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js?https'; 
+1

क्या आपने सत्यापित किया है कि इस विधि का उपयोग http और https, और नए, क्लाइंट दोनों के पदों की अनुमति देगा? मैंने कुछ समय पहले एक खतरनाक स्विच किया था, ऐसा ही ऐसा दिखता है। बाद में, मैंने उपयोगकर्ता को पहले डिस्कस त्रुटि की रिपोर्ट की थी। मैंने डर के लिए बदलाव को वापस कर दिया कि यह कारण था। ऐसा नहीं हो सकता है, मुझे नहीं पता। यह * काम करने के लिए * लग रहा था। –

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

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