
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.png
no 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.com
la 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.