safari mixed-content safari9

¿Safari 9 no permite la ejecución de contenido inseguro?



mixed-content safari9 (3)

De acuerdo con los foros de soporte de Apple, Safari no le permite deshabilitar el bloqueo en contenido mixto.

Aunque esto es frustrante para la usabilidad en casos legítimos como el suyo, parece ser parte de su esfuerzo para forzar la entrega segura de contenido / contenido que sirve las mejores prácticas.

Como solución para usted, puede actualizar la conexión HTTP a HTTPS (lo que parece que ha hecho) o hacer proxy de su contenido a través de una conexión HTTPS con un servicio habilitado para HTTPS (o, en su caso, puerto).

después de actualizar a Safari 9 recibo este error en el navegador:

[Warning] [blocked] The page at https://localhost:8443/login was not allowed to run insecure content from http://localhost:8080/assets/static/script.js.

¿Alguien sabe cómo habilitar la ejecución de contenido inseguro en el nuevo Safari?


Puede solucionar el problema HTTPS utilizando HTTPS localmente con un certificado SSL autofirmado. Heroku tiene un gran artículo sobre cómo generar uno .

Después de configurar SSL en todos sus servidores de desarrollo, seguirá recibiendo un error al cargar el recurso en Safari debido a que se está utilizando un certificado no confiable (los navegadores no confían en los certificados SSL autofirmados porque no se pueden verificar con una autoridad confiable ). Para solucionar este problema, puede cargar la URL problemática en una nueva pestaña en Safari y el navegador le solicitará que permita el acceso. Si hace clic en "Mostrar certificado" en el indicador, habrá una casilla de verificación en la vista de detalles del certificado para "Permitir siempre contenido de localhost". Al verificar esto antes de permitir el acceso, se almacenará la configuración en Safari para el futuro. Después de permitir el acceso, simplemente vuelva a cargar la página que originalmente mostraba un problema y debería estar listo.

¡Este es un caso de uso válido como desarrollador, pero asegúrese de comprender completamente las implicaciones de seguridad y los riesgos que agrega a su sistema al realizar este cambio!


Si como yo tienes

  • frontend en port1
  • backend en port2b
  • desea cargar el script http://localhost:port1/app.js desde http://localhost:port2/backendPage

He encontrado una solución sencilla: simplemente redireccione con la respuesta http toda la http://localhost:port2/localFrontend/*path http://localhost:port1/*path desde la configuración del servidor backend.

Luego, puede cargar su script directamente desde http://localhost:port2/localFrontend/app.js lugar de la URL de frontend directo. (o puede configurar una URL base para todos sus recursos)

De esta manera, Safari podrá cargar contenido de otro dominio / puerto sin necesidad de ninguna configuración https.