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 = $_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:
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.
Hola buen día.
Apliqué todo lo descrito en el servidor agregando todo, pero ahora me aparece un mensaje:
Forbidden
You don’t have permission to access this resource.
Si alguien puede indicarme como prosigo desde aquí por favor, gracias.
Revisa bien los permisos y el usuario que le has dado al fichero redirect.php, tiene que tener exactamente los mismos que el resto de ficheros que componen WordPress.
Un saludo.