Cómo activar SSL en PrestaShop con cPanel y evitar problemas de contenido mixto
¿Por qué es tan importante activar SSL en PrestaShop?
Si tienes una tienda online, el candado verde en el navegador ya no es un extra, es una necesidad absoluta. Activar SSL en PrestaShop no solo protege los datos de tus clientes (como contraseñas, direcciones y pagos), sino que también es un factor clave para el SEO. Google penaliza las webs sin HTTPS y premia las que lo tienen con mejor posicionamiento.
Cuando hablamos de SSL PrestaShop cPanel, nos referimos al proceso completo: instalar el certificado gratuito desde tu panel de hosting, configurar PrestaShop para que fuerce HTTPS y, lo más importante, solucionar el famoso problema de contenido mixto PrestaShop.
El contenido mixto ocurre cuando tu web carga por HTTPS pero algunos recursos (imágenes, scripts, hojas de estilo) siguen cargándose por HTTP. Esto provoca que el candado desaparezca o que aparezca un aviso de "No seguro". No te preocupes, en esta guía te explico paso a paso cómo solucionarlo, incluso si nunca has tocado un panel de control.
Requisitos previos antes de empezar
Antes de lanzarnos a configurar nada, asegúrate de cumplir estos requisitos. Te ahorrará muchos quebraderos de cabeza.
- Tener acceso a cPanel: Necesitas las credenciales de tu hosting. Si no las tienes, pídelas a tu proveedor.
- Tener acceso al administrador de PrestaShop: La URL suele ser
tudominio.com/admin. - Acceso al panel de archivos: Puedes usar el Administrador de Archivos de cPanel o un cliente FTP como FileZilla.
- Un certificado SSL: La mayoría de hosts ofrecen certificados gratuitos (Let's Encrypt, AutoSSL). Si tu hosting no lo tiene, puedes generar uno desde la sección de seguridad de cPanel.
Paso 1: Instalar y activar el certificado SSL en cPanel
Lo primero es tener el certificado activo. Si tu hosting usa AutoSSL (muy común en cPanel), esto se hace automáticamente. Pero vamos a verificarlo.
- Accede a tu cPanel: Escribe
tudominio.com/cpanelen tu navegador e inicia sesión. - Busca la sección "Seguridad": Dependiendo del tema de tu cPanel, puede llamarse "SSL/TLS" o "AutoSSL".
- Si ves AutoSSL: Haz clic en "Run AutoSSL" o "Ejecutar". El sistema comprobará tu dominio y emitirá un certificado automáticamente. Espera unos minutos.
- Si no tienes AutoSSL: Busca "SSL/TLS Status" o "Estado SSL/TLS". Haz clic en el botón "Run AutoSSL" en el dominio que quieras proteger.
[WARNING] Si tu dominio tiene más de un subdominio (por ejemplo, tienda.tudominio.com), asegúrate de que el certificado cubra ambos. Los certificados comodín o wildcard cubren todos los subdominios, pero los estándar solo cubren uno.
¿Cómo saber si el certificado ya está activo?
La forma más rápida es visitar https://tudominio.com directamente. Si el navegador muestra el candado, ya está activo. Si muestra un error de "Conexión no privada", el certificado no se ha emitido correctamente o está tardando.
[INFO] La emisión de certificados Let's Encrypt puede tardar entre 5 y 15 minutos. No te desesperes si no es instantáneo.
Paso 2: Configurar PrestaShop para activar HTTPS
Una vez que el certificado está activo en el servidor, hay que decirle a PrestaShop que lo use. Vamos a la configuración principal.
- Inicia sesión en tu administrador de PrestaShop.
- Ve al menú "Configuración" (o "Parámetros avanzados" en versiones antiguas) y luego a "General".
- Busca la opción "Activar SSL": Está en la pestaña "General". Cámbiala a "Sí".
- Activa la opción "Activar SSL en todas las páginas": Esta es crucial. Fuerza que todas las páginas de tu tienda usen HTTPS, no solo las del carrito.
- Guarda los cambios.
PrestaShop te pedirá que te vuelvas a conectar. No te asustes, es normal.
Forzar HTTPS desde el archivo .htaccess
A veces, PrestaShop no actualiza bien las reglas de redirección. Para asegurarnos de que nadie acceda por HTTP, vamos a forzar la redirección desde el servidor.
- Ve al Administrador de Archivos de cPanel (o usa FTP).
- Busca la carpeta raíz de tu tienda (normalmente
public_html). - Busca el archivo
.htaccess. Si no lo ves, activa la opción "Mostrar archivos ocultos" en la esquina superior derecha del Administrador de Archivos. - Edita el archivo con el editor de texto de cPanel.
- Añade este código al principio del archivo, justo después de la línea que dice
RewriteEngine on:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- Guarda el archivo.
[WARNING] Antes de editar el .htaccess, descarga una copia de seguridad del archivo original. Si algo sale mal, puedes restaurarlo fácilmente.
Paso 3: El problema del contenido mixto en PrestaShop
Ahora viene la parte más delicada. Aunque actives HTTPS, es muy probable que tu tienda tenga contenido mixto PrestaShop. Esto ocurre porque las URLs de tus imágenes, productos y módulos están guardadas en la base de datos con http://.
¿Cómo detectar el contenido mixto?
- Abre tu tienda en el navegador.
- Pulsa F12 para abrir las herramientas de desarrollador (Chrome o Firefox).
- Ve a la pestaña "Consola" o "Console".
- Busca mensajes de error que digan "Mixed Content" o "Solicitud mixta". También verás una lista de URLs en rojo.
Otro método más visual es usar la herramienta JitBit SSL Checker o la extensión de Chrome "Mixed Content Checker".
Solución definitiva: actualizar las URLs en la base de datos
La forma más rápida de arreglarlo es cambiar todas las URLs de http:// a https:// en la base de datos. No lo hagas a mano, es un error. Usa una consulta SQL segura.
- Ve a cPanel y abre "phpMyAdmin".
- Selecciona tu base de datos (la de PrestaShop).
- Ve a la pestaña "SQL".
- Ejecuta esta consulta (reemplaza
tudominio.compor tu dominio real):
UPDATE ps_configuration SET value = REPLACE(value, 'http://tudominio.com', 'https://tudominio.com') WHERE value LIKE '%http://tudominio.com%';
UPDATE ps_shop_url SET domain = REPLACE(domain, 'http://', 'https://');
UPDATE ps_shop_url SET domain_ssl = REPLACE(domain_ssl, 'http://', 'https://');
[TIP] Si tu prefijo de tablas no es ps_, cámbialo en la consulta. Lo puedes ver en el archivo config/settings.inc.php dentro de la carpeta de PrestaShop.
Esta consulta cambia las URLs en las tablas principales de configuración y tiendas. Pero las imágenes de productos están en tablas específicas. Ejecuta también estas:
UPDATE ps_product SET reference = REPLACE(reference, 'http://', 'https://');
UPDATE ps_image SET legend = REPLACE(legend, 'http://', 'https://');
[WARNING] Esta consulta es segura, pero si tienes una base de datos muy grande, haz una copia de seguridad antes de ejecutarla. En phpMyAdmin, puedes exportar la base de datos en la pestaña "Exportar".
Solución alternativa: usar un plugin o módulo
Si no te atreves con SQL, hay módulos gratuitos en el marketplace de PrestaShop que hacen esto automáticamente. Busca "Force HTTPS" o "Fix Mixed Content" en el gestor de módulos de tu tienda. Algunos son:
- Force HTTPS (de PrestaShop).
- PS Mixed Content Fixer.
Estos módulos suelen limpiar las URLs de las imágenes y los enlaces de forma automática.
Paso 4: Limpiar la caché de PrestaShop
Después de los cambios, PrestaShop guarda una caché interna que puede seguir mostrando las URLs antiguas. Hay que limpiarla.
- Ve al administrador de PrestaShop.
- Accede a "Parámetros avanzados" > "Rendimiento" (o "Performance").
- Haz clic en "Vaciar la caché" (o "Clear cache").
- También es buena idea desactivar y reactivar el modo "Combinar archivos" en esa misma página, para que los CSS y JS se regeneren con las URLs correctas.
Limpiar la caché del navegador y del servidor
- En tu navegador: Pulsa
Ctrl + Shift + Supry borra la caché y las cookies. - En cPanel: Ve a "Administrador de archivos" y borra el contenido de la carpeta
var/cache(si usas PrestaShop 1.7 o superior) ocache(en versiones antiguas).
Paso 5: Verificar que todo funciona correctamente
Ya casi lo tienes. Ahora vamos a comprobar que no queda ningún rastro de contenido mixto.
- Vuelve a abrir tu tienda y haz una prueba de compra completa (añade un producto al carrito, ve al checkout y simula un pago, sin llegar a pagar).
- Comprueba el candado: Debe aparecer el candado cerrado en la barra de direcciones.
- Usa herramientas online: Páginas como Why No Padlock o SSL Labs te dirán si hay algún recurso problemático.
Solución a problemas comunes
- El candado no aparece: Revisa la consola del navegador (F12) y busca errores de "Mixed Content". Si hay alguna URL con
http://, repite la consulta SQL para esa tabla específica. - El administrador no carga: Si al activar SSL no puedes acceder al panel, edita el archivo
config/settings.inc.phpy cambia las URLs dehttp://ahttps://manualmente. - La página da un error de redirección en bucle: Esto suele pasar por una mala configuración en el
.htaccess. Revisa las líneas que añadiste y asegúrate de que no hay duplicados.
Preguntas frecuentes (FAQ) sobre SSL y PrestaShop
¿Qué pasa si mi hosting no tiene cPanel?
Si tu hosting usa Syspanel (el antiguo HestiaCP), el proceso es similar. Accede a tu panel a través del puerto 2106 (por ejemplo, tudominio.com:2106). Dentro, busca la sección "Web" o "SSL" y activa el certificado gratuito desde el apartado "Let's Encrypt". Luego, el resto de los pasos (configuración en PrestaShop y base de datos) son idénticos.
¿Es necesario comprar un certificado SSL de pago?
No, para la mayoría de tiendas online, un certificado gratuito de Let's Encrypt (el que ofrece cPanel automáticamente) es más que suficiente. Ofrece el mismo cifrado de 256 bits que uno de pago. La única diferencia es que los de pago pueden ofrecer garantías de responsabilidad civil, pero para una tienda pequeña o mediana, el gratuito es perfecto.
¿El contenido mixto afecta al SEO?
Sí, muchísimo. Google y otros buscadores muestran una advertencia de "No seguro" en tu web si detectan contenido mixto. Esto reduce la confianza del usuario y aumenta la tasa de rebote. Además, desde 2018, Google marca todas las páginas HTTP como "No seguras", así que es fundamental solucionarlo para no perder posiciones.
¿Cuánto tiempo tarda en propagarse el certificado SSL?
La propagación del certificado es inmediata a nivel de servidor, pero los cambios en la base de datos y la caché pueden tardar unos minutos en verse reflejados en tu navegador. Te recomiendo esperar 10-15 minutos y hacer una prueba en modo incógnito.
¿Qué hago si tras todos los pasos sigo viendo el error?
Si has seguido todos los pasos y el candado sigue sin aparecer, el problema suele estar en un módulo de terceros (por ejemplo, un plugin de pago o un tema) que genera URLs con http:// de forma dinámica. En ese caso, contacta con el soporte del módulo o del tema. A veces, la solución es simplemente actualizar el módulo a su última versión.
Conclusión y recomendaciones finales
Activar SSL PrestaShop cPanel no es complicado si sigues el orden correcto: primero el certificado en el servidor, luego la configuración en PrestaShop, después la redirección forzada y finalmente la limpieza de URLs en la base de datos. La clave está en no saltarse el paso del contenido mixto PrestaShop, porque es el que más dolores de cabeza causa.
Te recomiendo que, una vez al mes, revises tu tienda con una herramienta de análisis SSL para asegurarte de que no se ha colado ningún recurso en HTTP. A veces, al añadir un producto nuevo o un módulo, se pueden generar URLs incorrectas.
Y recuerda, si tu hosting usa Syspanel, el acceso es por el puerto 2106 y el proceso es igual de sencillo.
Ahora que tu tienda está 100% segura y con el candado verde, tus clientes comprarán con total confianza y Google te lo agradecerá con mejores posiciones. ¡Enhorabuena!
