Let’s Encrypt ha llegado para quedarse. Ahora disponemos de certificados SSL totalmente gratuitos, y esto hará que nuestras webs sean más seguras y transmitan más confianza.

El problema viene al instalar un certificado Let’s Encrypt en una tienda prestashop que tenga el TPV de Redsys, y es que Redsys no soporta el protocolo SNI, es decir, únicamente funciona con tiendas online con IP dedicada.  Ahora bien, podemos modificar el módulo de redsys para engañar temporalmente al servidor, y devolver la respuesta de compra con un “http” en vez de un “https”.

Lo único que tenemos que hacer es modificar el archivo “/modules/redsys/redsys.php” y alrededor de la línea 336 (versión 3.0 del módulo oficial) encontraremos las siguientes líneas:

//URL de Respuesta Online
if (empty($_SERVER['HTTPS']))
{
$protocolo = 'http://';
$urltienda = $protocolo.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'modules/redsys/validation.php';
}
else
{
$protocolo = 'https://';
$urltienda = $protocolo.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'modules/redsys/validation.php';
}

Lo único que habría que hacer es modificar la línea:

$protocolo = 'https://';

Por:

$protocolo = 'http://'; //antes https://