Cargando Google font en HTTPS, el contenido está bloqueado


Hay un tema de wordpress que extrae automáticamente la opción fuente elegida y lo solicita de google font. cuando se necesitaba ssl para algunas páginas seleccionadas, la fuente se convirtió en missing

Viendo el registro de la consola:

[bloqueado] La página en ' https://www.example.com/ 'se cargó a través de HTTPS, pero ejecutó contenido inseguro desde' http://fonts.googleapis.com/css?family=Alegreya + Sans: 300,400,500,700,800': este contenido también debe cargarse HTTPS.

¿Entraría en el código y haría funcionar todas las solicitudes en https desde google font? ¿Hay alguna solución a esto?

Se encontró el código fuente... pero parece que ya está haciendo esto... ¿podría haber un error en la lógica if?

$prefix = "http";
            if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') $prefix = "https";

            if($get_google_font){

            if(!in_array($rule_split[0], $this->used_fonts))
            {
                $this->extra_output .= "\n<!-- google webfont font replacement -->\n";
                $this->extra_output .= '<link id="google_webfont_'.$this->webfont_count.'" rel="stylesheet" type="text/css" href="'.$prefix.'s://fonts.googleapis.com/css?family='.str_replace(' ','+',$rule_split[0]).$font_weight.'" />';
            }
Author: Anand Bhat, 2014-07-02

4 answers

Edite su tema reemplazando cada ocurrencia de http://fonts.googleapis.com/... con https://fonts.googleapis.com/... (tenga en cuenta la s).

Los recursos que podrían representar un riesgo de seguridad (como scripts y fuentes) deben cargarse a través de una conexión segura cuando se soliciten en el contexto de una página segura por una razón obvia: podrían haber sido manipulados en el camino.

 40
Author: Stefano Sanfilippo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-02 14:37:01

Use URI relativos al protocolo

Simplemente use un prefijo //. (instead of http[s]://)

  • En una página https, se cargará la versión segura.
  • En una página http simple, se cargará la versión http simple.

Edita tu tema reemplazando cada ocurrencia de http://fonts.googleapis.com/... con //fonts.googleapis.com/...

 21
Author: harmv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-26 10:19:58

Deje que el navegador maneje todas las cosas simplemente elimine 'http' de su referencia.

Del mismo modo que usted tiene que hacer para otras bibliotecas también si se enfrentan al mismo problema con ellos por ejemplo,

https://fonts.googleapis.com/css?family=Open+Sans:700,600,800,400

A

//fonts.googleapis.com/css?family=Open+Sans:700,600,800,400

Lo mismo para

http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css

A

//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css
 7
Author: Yatender Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-10 07:42:05

Me enfrenté a este problema cuando está utilizando enlaces de cdn de Google y que no son accesibles (como un país como China), intente usar archivos locales en lugar de cdn

 0
Author: Ashish Devade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-16 05:07:34