Nginx no carga css/js/images en https: carga bloqueada de contenido activo mixto

Nginx no carga css/js/images en https: carga bloqueada de contenido activo mixto

Estoy ejecutando ubuntu 14.04 con Nginx 1.8.0. Al abrir las páginas web en https, las páginas parecen estar rotas porque css/js/images no se cargan. Recibo este error " Blocked loading mixed active content"

Este es mi nginx.conf:https://github.com/adithyakhamithkar/ansible/blob/master/roles/nginx/templates/nginx.j2

Este es mi archivo de host virtual: https://github.com/adithyakhamithkar/ansible/blob/master/roles/nginx/templates/virtualhost_ssl.j2

¿Podría alguien guiarme sobre cómo solucionar este problema?

Respuesta1

No se puede arreglar con la configuración de nginx

Considere el siguiente archivo html:

  <html>
    <head>
    </head>
    <body>
      <img src="http://example.com/some/image.png">
    </body>
  </html>

Si este archivo html se entrega a través de https, lo harásiempregenerar una advertencia de contenido mixto. Intentar corregir la solicitud posterior /some/image.pngno funcionará, la solicitud es bloqueada por el navegador y no llega al servidor.

arreglar el html

La única solución efectiva es arreglar la fuente html para la solicitud principal, de modo que solicite todos los activos https://también, es decir, cambiar el html a esto:

  <html>
    <head>
    </head>
    <body>
      <img 
        src="/some/image.png" 
        alt="same domain and port as this html page please"
      />
    </body>
  </html>

O esto:

  <html>
    <head>
    </head>
    <body>
      <img 
        src="https://example.com/some/image.png" 
        alt="explicit https" 
      />
    </body>
  </html>

En los comentarios mencionaste WordPress como ejemplo; para una instalación de WordPress lo único que se requiere (en principio, en la práctica se espera algo de confusión) escambiar la URL del sitiopara que wordpress considere https://example.comla URL raíz para la instalación.

Respuesta2

El contenido activo mixto ahora está bloqueado de forma predeterminada en Firefox 23 y versiones posteriores. No estoy seguro acerca de otros navegadores

¿Qué es el contenido mixto?

Cuando un usuario visita una página servida a través de HTTP, su conexión está abierta a escuchas y ataques de intermediario (MITM). Cuando un usuario visita una página servida a través de HTTPS, su conexión con el servidor web se autentica y cifra con SSL y, por lo tanto, está protegida contra espías y ataques MITM.

Sin embargo, si una página HTTPS incluye contenido HTTP, los atacantes pueden leer o modificar la parte HTTP, aunque la página principal se proporcione a través de HTTPS. Cuando una página HTTPS tiene contenido HTTP, llamamos a ese contenido "mixto". La página web que visita el usuario está sólo parcialmente cifrada, ya que parte del contenido se recupera sin cifrar a través de HTTP. El bloqueador de contenido mixto bloquea ciertas solicitudes HTTP en páginas HTTPS.

Parece que está vinculando contenido estático que no es SSL. Deberías vincular tu contenido como

<a href='//host.com/file.png>

Si necesita vincularse desde otro host.

información relacionada