2012-04-04 12 views
5

Estoy cargando Disqus en una página cargada a través de HTTPS con el siguiente código, como se sugiere en this answer.¿Cómo forzo a Disqus a usar HTTPS en todas las solicitudes?

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

Tenga en cuenta que he cambiado la solicitud de embed.js ser https en lugar de http, y he añadido ?https hasta el final de la solicitud también, que creo que se supone que forzar HTTPS.

La solicitud inicial se realiza a través de HTTPS según lo planeado, pero realiza una solicitud secundaria a través de HTTP, que es Chrome is hating (obtengo el icono de candado con la cruz roja).

Desde la consola de 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] 

Es este el método correcto para obtener Disqus utilizar SSL en todas las solicitudes, o me he perdido un paso?

Gracias.

Respuesta

6

Esto parece ser un problema dentro de Disqus. Teníamos a Disqus trabajando bien a través de SSL con el mismo enfoque en un par de sitios de Drupal, pero hace poco Disqus comenzó a causar advertencias de SSL tanto en IE como en Chrome, como usted ha descrito.

Hice un poco de excavación, y veo que la función DISQUS.useSSL que está definida en embed.js y llamada en thread.js actualiza algunas URLS (específicamente ["disqus_url", "realtime_url", "uploads_url" ]) en el objeto de configuración Disqus json reemplazando http en su URL con https si se encuentra https en la configuración. El juggler_url no recibe el mismo tratamiento, por lo que no se actualiza para cargarse a través de SSL. No estoy seguro de cuál es el propósito del malabarista, pero parece que esa URL (http://juggler.services.disqus.com/) no se cargará a través de SSL en ningún caso, así que incluso si su URL se cambió a https, todavía no funcionaría.

Entonces, ¿quizás Disqus ha hecho un cambio reciente, ya que teníamos este funcionamiento anteriormente? Estamos tomando esto con ellos, ya que este no parece ser un problema de configuración de nuestro lado ...

ACTUALIZACIÓN:

Apaprently Disqus puso en marcha un nuevo servicio que no es compatible con SSL. Esto es lo que genera los scripts adicionales que se cargan de forma insegura, lo que activa la advertencia de seguridad. Disqus inhabilitó este nuevo servicio (que no nos dijeron el nombre) para nuestra cuenta específica, y ahora SSL está trabajando nuevamente como se esperaba. Entonces, la solución es simplemente pedirles que hagan que su cuenta cumpla con SSL, y eso debería solucionarlo.

+0

Gracias por compartir tu investigación. Manténganos informados si Disqus tiene algunas respuestas. – doctororange

+0

He actualizado la respuesta anterior con la solución ... – stockli

+0

La nuestra parece haber comenzado a funcionar, por lo que espero que hayan solucionado el problema. Gracias de nuevo. – doctororange

1

He tenido este problema de vez en cuando durante los últimos meses y me han obligado a deshabilitar Disqus por completo. Inicialmente me puse en contacto con Disqus para ver si podían hacer que el interruptor que deshabilitaba la función que no era compatible con SSL fuera de su lado y esto funcionó por un tiempo, pero el problema de contenido mixto siguió volviendo a ocurrir.

Lo que parece suceder es que a pesar de que Disqus fuerce la versión https de su javascript count.js, count.js todavía redirige a mediacdn.disqus.com en lugar de a securecdn.disqus.com por algún motivo. Si anexa? Https manualmente en el editor de complementos para forzar el redireccionamiento a securecdn.disqus.com, el problema desaparece en la primera llamada al CDN pero en llamadas posteriores al CDN con la cadena de consulta? Https agregado al recuento. js call, la redirección simplemente vuelve a mediacdn.disqus.com. Lo he intentado muchas veces.

Lo molesto de este problema es que la página SSL en cuestión en mi sitio que crea la notificación de contenido mixto ni siquiera tiene una sección de comentarios. Entonces, Disqus está cargando su javascript innecesariamente en la página.

Me gusta Disqus pero me parece increíble que no solucionarían este problema permitiendo a los usuarios inhabilitar el javascript de forma selectiva o implementando una versión segura de cdn que funciona en todos los casos. Espero que lo descubran.

También me dijeron que Disqus 2012 no es compatible con HTTPS (aunque lo será en el futuro).

2

encontrado este artículo, lo que da la solución: http://help.disqus.com/customer/portal/articles/542119-can-disqus-be-loaded-via-https-

Básicamente es (todavía) no es posible con Disquss 2012, pero apagarlo y cambiar el embed src por lo que utiliza https: // y agregar el? https param:

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

¿Ha verificado que la utilización de este método permitirá publicaciones de http y https, y nuevos clientes? Hace un tiempo hice un cambio fortuito que resulta que se ve así. Más tarde, hice que un usuario informara el primer error de Disqus. Revertí el cambio por temor a que esta fuera la causa. Puede que no haya sido, no sé. Sí * parece * que funciona. –

Cuestiones relacionadas