ART PROJECT GROUP:
C/ Álvaro Mutis, 1. 4º G. C.P: 29651. Mijas. Málaga. España.
Teléfono: +34 665 058 218.

¿Problemas entre los iframes y los certificados SSL?

  • WordPress - Blog

¿Problemas entre los iframes y los certificados SSL?

Ayer le instalamos un certificado SSL gratuito de Comodo a un cliente en su sitio web y hoy nos ha llamado urgentemente con un problema que se ha generado a raíz de la instalación del nuevo certificado.

Problema

El problema que ha surgido es que este sitio web utiliza gran cantidad de iframes que llaman a contenido bajo http, lo que los hacen totalmente inútiles al ser llamados en páginas https, y por lo tanto con certificado SSL. El contenido es tan inútil que, por motivos de seguridad, no se carga, por lo que el iframe queda totalmente en blanco.

Solución

La solución que hemos encontrado en el siempre imprescindible Stack Overflow es la siguiente:

I know this is an old post, but another solution would be to use cURL, for example:

redirect.php:

<?php
if (isset($_GET

[‘url’])) {
$url = $_GET[‘url’];
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
}
?>

then in your iframe tag, something like:

<iframe src=”/redirect.php?url=http://www.example.com/”></iframe>

Es decir, se propone la creación de un fichero PHP llamado redirect.php que se encargue de abrir directamente las URLs http, prohibidas por el certificado SSL, utilizando la función curl.

Obviamente el nuevo fichero PHP hay que crearlo en el directorio raíz del sitio web y se tienen que sustituir todas las URLs http añadiéndoles por delante /redirect.php?url=.

Así es de simple y a la par que elegante la solución propuesta por David R., solución que abrirá las páginas http, condenadas a la clandestinidad por el certificado SSL, en cualquiera de las páginas https sin más complicaciones.

Pero dado que estamos trabajando sobre WordPress y podemos hacer exactamente lo mismo con un código mucho más eficiente que el propuesto originalmente hemos creado el siguiente código PHP que debe sustituir al propuesto inicialmente:

require_once( './wp-load.php' );

if ( isset( $_GET['url'] ) &amp;amp;&amp;amp; !empty( $_GET['url'] ) ) {
	$respuesta = wp_remote_get( $_GET['url'] );
 
	echo $respuesta['body'];
}

Mucho mejor, ¿no?. Como podéis ver realiza exactamente la misma función que el código PHP propuesto originalmente, pero utilizando las funciones nativas de WordPress, que nos van a asegurar su correcto funcionamiento en todo momento.

¿Qué os parece? ¿Os habéis encontrado alguna vez con el mismo problema? ¿Cómo lo resolvisteis? Nos gustaría conocer vuestras experiencias.

Esperamos que esta simple solución os saque de más de un apuro.

2017-05-31T16:57:47+00:00 viernes, 10 de febrero de 2017|Categorías: Art Project Group|Etiquetas: , , |Sin comentarios

Deje un comentario

Comparte esto con un amigo