2012-04-04 11 views
5

Załaduję Disqus na stronie ładowanej za pomocą HTTPS z następującym kodem, jak zasugerowano w this answer.Jak zmusić Disqus do korzystania z HTTPS we wszystkich żądaniach?

<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> 

Zauważ, że zmieniłem wniosku embed.js być https zamiast http i Dodałem ?https do końca życzenie też, co wierzę, ma wymusić HTTPS.

Wstępne żądanie przechodzi przez HTTPS zgodnie z planem, ale wysyła drugie żądanie za pośrednictwem protokołu HTTP, które Chrome is hating (otrzymuję ikonę kłódki z czerwonym krzyżem).

Z konsoli Chrome:

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] 

Jest to właściwa metoda, aby uzyskać Disqus używać SSL na wszystkich żądań, lub zostały pominięte krok?

Dzięki.

Odpowiedz

6

To wydaje się być problemem w samym Disqus. Disqus działał dobrze przez SSL z tym samym podejściem w kilku witrynach Drupal, ale oba ostatnio miały Disqus, który zaczął powodować ostrzeżenia SSL w obu IE i Chrome, jak już opisałeś.

Zrobiłem trochę kopania i widzę, że funkcja DISQUS.useSSL zdefiniowana w pliku embed.js i wywołana w wątku.js aktualizuje kilka adresów URL (w szczególności ["disqus_url", "realtime_url", "uploads_url" ]) w obiekcie ustawień Disqus json, zastępując http w adresie URL https, jeśli w ustawieniach znajduje się https. Plik juggler_url nie ma takiego samego traktowania, więc nie jest aktualizowany do ładowania przez SSL. Nie jestem pewien, jaki jest cel żonglera, ale wygląda na to, że ten URL (http://juggler.services.disqus.com/) nie ładuje się przez SSL w żadnym wypadku, więc nawet jeśli adres URL został zmieniony na https, to nadal by nie działało.

Może więc Disqus dokonał ostatniej zmiany, skoro wcześniej działaliśmy? Jesteśmy to podejmowanie z nimi, ponieważ nie wydaje się być problem config po naszej stronie ...

UPDATE:

Apaprently Disqus uruchomiła nową usługę, która nie obsługuje SSL. To właśnie generuje dodatkowe skrypty, które ładują się niezabezpiecznie, powodując ostrzeżenie o zabezpieczeniach. Disqus wyłączył tę nową usługę (która nie podał nam nazwy) dla naszego konkretnego konta, a teraz SSL znów działa zgodnie z oczekiwaniami. Tak więc rozwiązaniem jest po prostu poproszenie ich, aby twoje konto było zgodne z SSL i powinno się nim zająć.

+0

Dziękujemy za udostępnienie swoich badań. Wysyłajcie nam wiadomości, jeśli Disqus ma jakieś odpowiedzi. – doctororange

+0

Zaktualizowałem powyższą odpowiedź z rozwiązaniem ... – stockli

+0

Wygląda na to, że nasza praca zaczęła działać, więc spodziewam się, że od tego czasu rozwiązali problem. Dzięki jeszcze raz. – doctororange

1

Mam ten problem od kilku miesięcy i zostałem zmuszony do całkowitego wyłączenia Disqus. Początkowo skontaktowałem się z Disqus, aby sprawdzić, czy mogą zrobić przełącznik, który wyłączył funkcję niezgodną z SSl po ich stronie, a to działało przez jakiś czas, ale problem z mieszaną treścią ponownie pojawił się ponownie.

Wydaje się, że pomimo tego, że Disqus wymusza wersję https swojego javascriptu count.js, to count.js nadal przekierowuje do mediacdn.disqus.com zamiast securecdn.disqus.com z jakiegoś powodu. Jeśli jeden dołącza? Https ręcznie w edytorze wtyczek, aby wymusić przekierowanie na securecdn.disqus.com, problem znika w pierwszym wywołaniu do CDN, ale w kolejnych wywołaniach do CDN z ciągiem zapytania? Https dodanym do licznika. js call, przekierowanie po prostu wraca do mediacdn.disqus.com. Próbowałem już tego wiele razy.

Denerwujące w tym zagadnieniu jest to, że strona z protokołem SSL w mojej witrynie, która tworzy powiadomienie o treści mieszanej, nie ma nawet sekcji komentarzy. Więc Disqus ładuje niepotrzebnie javascript na stronę.

Podobają mi się Disqus, ale to niewiarygodne dla mnie, że nie naprawiliby tego problemu przez zezwolenie użytkownikom na wyłączenie javascript selektywnie lub przez wdrożenie bezpiecznej wersji cdn, która działa we wszystkich przypadkach. Mam nadzieję, że to zrozumieją.

Powiedzieli mi również, że Disqus 2012 nie obsługuje HTTPS (choć będzie to w przyszłości).

2

Znalazłem ten artykuł, który rękach rozwiązanie: http://help.disqus.com/customer/portal/articles/542119-can-disqus-be-loaded-via-https-

W zasadzie nie jest to możliwe (jeszcze) z Disquss 2012, ale go wyłączyć i zmienić src osadzenia więc używa https: // i dodać? https param:

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

Czy zweryfikowałeś, że wykorzystanie tej metody umożliwi publikowanie postów zarówno z http, jak i https oraz nowych klientów? Zrobiłem przypadkowo jakiś czas temu, że tak się właśnie dzieje. Później miałem zgłoszenie użytkownika pierwszy błąd Disqus. Odwróciłem zmianę z obawy, że to jest przyczyną. Być może nie było, nie wiem. Wyglądało na to, że * działa *. –

Powiązane problemy