Forzar SSL en Backoffice Prestashop

Forzar SSL en Backoffice Prestashop

Sin valoraciones

Aprende a usar siempre el SSL en Prestashop en tu Backoffice y olvídate de los errores que pueda tener un panel de administrador de Prestashop.

Una vez tengamos el certificado SSL instalado en nuestro hosting de Prestashop y activado para nuestro FrontOffice es casi necesario forzarlo en nuestro panel de Administrador. Ya que muchos módulos pueden dejar de funcionar debido a la incompatibilidad entre https y http. Vamos a ver cómo forzar el SSL en el panel de administrador de Prestashop:

Forzar SSL en el Login de Prestashop

Nos dirigiremos a controllers/admin/ y abriremos el archivo AdminLoginController.php. Allí hay preparadas unas líneas que etán comentadas para forzar el login vía https.

En mi versión están en la línea 67, 68, 69 y 70. Dónde hay esta información:

// You can uncomment these lines if you want to force https even from localhost and automatically redirect
// header('HTTP/1.1 301 Moved Permanently');
// header('Location: '.Tools::getShopDomainSsl(true).$_SERVER['REQUEST_URI']);
// exit();

Si lo descomentamos, lo que hará será redireccionar el login de Prestashop desde http a https. Quedaría así:

// You can uncomment these lines if you want to force https even from localhost and automatically redirect
header('HTTP/1.1 301 Moved Permanently');
header('Location: '.Tools::getShopDomainSsl(true).$_SERVER['REQUEST_URI']);
exit();

Forzar SSL en todo el BackOffice de Prestashop

Ahora ya tenemos el login siempre con https. Pero seguimos podiendo acceder al Backoffice sin ssl si lo quitamos de la url. Vamos a mejorar un poco esto con un script muy sencillo.

Este script lo pondremos en el footer de nuestro backoffice. Para ello abrimos el archivo footer.tpl situado en nuestra carpeta de plantilla de administrador. En mi caso, administrador/themes/default/template.

En el archivo footer.tpl lo que pondremos, antes de cerrar el </body>, será el siguiente script dónde miraremos si está activo el SSL en nuestra web y, si lo está, forzaremos que las url de nuestro backoffice sean con https y si no lo etá lo redireccionaremos al https.

<!-- FORCE SSL ADMIN -->
{literal}
<script>
if(parseInt({/literal}{Configuration::get('PS_SSL_ENABLED')}{literal}) == 1) {
	if (location.protocol != 'https:') {
		location.href = 'https:' + window.location.href.substring(window.location.protocol.length);
	}
}
</script>
{/literal}

Ahora, con estos cambios, ya tendremos siempre el https en nuestro BackOffice de Prestashop.

Valoración de la Información

3 comentarios

  1. Buenas tardes, yo tengo un poco de lio con esto. Me gustaría exponerte mi archivo footer.tpl para que lo echaras un vistazo. Además necesito algo de ayuda porque mi web está teniendo errores 521-524-527 , he desistalado modulos y parece que va mejor y no salen tantos. Me gustaría saber como puedo saber si mi estructura está correcta o que tengo que hacer para actualizar a la 1.7.7, actualmente tengo 1.7.6.2.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *