Acabo de encontrar un escenario en el que se estaba bloqueando una hoja de estilo en una página de pago segura.
La hoja de estilo se cargó así:
<link href="/CSS/all.min.css?v=2" rel="stylesheet" type="text/css" />
Recibí un error en la consola de desarrollo de Chrome:
Contenido mixto: la página en
https://www.example.com/secure/checkout.aspx
se cargó a través de HTTPS, pero solicitó una hoja de estilo insegurahttp://www.example.com/CSS/all.min.css?v=2
. Esta solicitud ha sido bloqueada; el contenido debe ser servido a través de HTTPS.
Tenía la impresión de que el uso de rutas relativas (all.min.css se sirve localmente) aseguraría que el contenido sea servido bajo el protocolo de la página solicitada, en este caso https
, pero eso obviamente no estaba sucediendo .
Intenté algunas cosas para hacer que el CSS volviera a funcionar, como usar la ruta completa al archivo junto con https
que no funcionó, y por un capricho, decidí eliminar la cadena de consulta del "destructor de caché" ?v=2
y el CSS fue servido bien.
Dicho esto, no tengo idea de por qué funcionó esto, no sabía que usar una cadena de consulta al hacer referencia a un archivo impediría que se cargara de forma segura, ¿alguien podría explicar las razones de esto?
Editar *
Pueden verificar esto ustedes mismos, aquí están los dos enlaces:
-
Servido bajo HTTPS sin la cadena de consulta del destructor de caché
-
Servido bajo HTTPS con cadena de consulta del destructor de caché
¿Se nota el cambio de protocolo en el segundo enlace?
¿Crees que esto podría tener algo que ver con el SSL que sigue usando SHA1? ¿Una medida de seguridad mayor impuesta por el navegador? Noté que esto no ocurre en IE pero en Chrome / FF, el recurso está bloqueado.