Cómo instalar y configurar SSL en PrestaShop (Let's Encrypt)
¿Por qué necesitas SSL en tu PrestaShop?
Si tienes una tienda online, el candadito verde en la barra del navegador no es un simple adorno. Es la primera señal de confianza que ve un cliente antes de darte su tarjeta de crédito. Sin un certificado SSL, los datos viajan en texto plano, lo que significa que cualquier persona con conocimientos técnicos podría interceptar contraseñas, direcciones o datos de pago.
Además, desde hace años, Google penaliza las webs sin HTTPS. Esto quiere decir que, aunque tengas el mejor producto del mundo, si no tienes SSL, tus competidores con HTTPS aparecerán por delante en los resultados de búsqueda. Por eso, instalar SSL PrestaShop no es una opción, es una necesidad absoluta para cualquier negocio serio.
La buena noticia es que hoy en día puedes conseguir un certificado SSL totalmente gratis y configurarlo en menos de 30 minutos si sigues esta guía. Vamos a usar Let's Encrypt, una autoridad certificadora sin ánimo de lucro que ofrece certificados válidos por 90 días y que se renuevan automáticamente.
[INFO] Aunque el proceso parezca técnico, no necesitas ser un experto en Linux. Solo necesitas acceso a tu panel de control y seguir los pasos en orden. Si te pierdes, vuelve al paso anterior y revisa la configuración.
Requisitos previos antes de empezar
Antes de lanzarnos a configurar nada, debemos asegurarnos de que tenemos todo en orden. La instalación de SSL PrestaShop requiere que tu servidor esté preparado. Esto es lo que necesitas:
- Acceso SSH a tu servidor (o un panel de control como Syspanel o cPanel).
- PrestaShop instalado y funcionando correctamente en tu dominio principal.
- Un dominio apuntando a tu servidor (el DNS debe estar resuelto correctamente).
- Puertos 80 y 443 abiertos en tu firewall. El primero es para HTTP y el segundo para HTTPS.
- Permisos de administrador en el sistema.
Si tu dominio no apunta todavía al servidor, el proceso fallará. Let's Encrypt necesita verificar que eres el dueño del dominio, y para ello hace una comprobación HTTP o DNS. Si el dominio no resuelve a tu IP, no podrá completar la verificación.
[WARNING] No intentes instalar SSL PrestaShop en un dominio que todavía no esté activo o que esté en medio de una migración. Espera a que el DNS se propague completamente (puede tardar entre 2 y 48 horas).
Método 1: Instalar SSL PrestaShop con Syspanel (el más fácil)
Si tu hosting usa el panel Syspanel, tienes suerte porque el proceso es casi automático. Syspanel (que se accede por el puerto 2106) incluye una integración nativa con Let's Encrypt que te ahorrará muchos quebraderos de cabeza.
Paso 1: Accede a Syspanel
Abre tu navegador y escribe la dirección de tu servidor seguida del puerto 2106. Por ejemplo: https://tu-servidor.com:2106. Inicia sesión con tus credenciales de administrador.
Paso 2: Busca la opción de SSL
Dentro del panel, navega hasta la sección de "Web" o "Dominios". Verás una lista de todos los dominios alojados en tu servidor. Busca el dominio de tu tienda PrestaShop.
Paso 3: Activa Let's Encrypt
Junto a tu dominio, deberías ver un botón o enlace que dice "SSL" o "Certificados". Haz clic ahí y selecciona la opción "Let's Encrypt". El panel te preguntará si quieres activar la renovación automática. Acepta, porque así no tendrás que preocuparte de renovar manualmente cada 90 días.
Paso 4: Espera la verificación
Syspanel se encargará de comunicarse con Let's Encrypt, verificar tu dominio y emitir el certificado. Normalmente tarda menos de un minuto. Cuando termine, verás un mensaje de éxito y el estado del certificado.
Paso 5: Configura PrestaShop
Ahora viene la parte importante. Ve a tu administración de PrestaShop y sigue los pasos de la sección "Configurar PrestaShop para usar HTTPS" que tienes más abajo en este artículo.
[TIP] Syspanel es una herramienta excelente para principiantes porque automatiza procesos que de otra forma requerirían conocimientos de línea de comandos. Si tu hosting no tiene Syspanel, no te preocupes, el siguiente método es igual de válido.
Método 2: Instalar Let's Encrypt manualmente con Certbot
Si no tienes Syspanel o prefieres el control total, Certbot es la herramienta oficial de Let's Encrypt para servidores Linux. Funciona con la mayoría de los servidores web, incluyendo Apache y Nginx.
Paso 1: Conéctate por SSH
Abre tu terminal y conéctate a tu servidor con el siguiente comando:
ssh usuario@tu-servidor.com
Te pedirá tu contraseña. Si tienes configuradas llaves SSH, no te la pedirá.
Paso 2: Instala Certbot
El método de instalación depende de tu distribución de Linux. Para Ubuntu y Debian, que son las más comunes en hosting:
sudo apt update
sudo apt install certbot python3-certbot-apache
Si usas Nginx en lugar de Apache, instala python3-certbot-nginx en su lugar.
Paso 3: Ejecuta Certbot
Ahora viene el comando mágico. Para Apache:
sudo certbot --apache
Para Nginx:
sudo certbot --nginx
Certbot te hará algunas preguntas:
- Email: Introduce una dirección válida para recibir avisos de renovación.
- Términos de servicio: Acepta.
- Dominio: Selecciona el dominio de tu PrestaShop de la lista.
- Redirección HTTP a HTTPS: Responde que sí, quieres redirigir todo el tráfico a HTTPS.
Paso 4: Verifica la instalación
Cuando Certbot termine, te mostrará un mensaje de éxito. Puedes comprobarlo visitando https://tu-dominio.com en tu navegador. Deberías ver el candado verde.
Paso 5: Configura la renovación automática
Los certificados de Let's Encrypt duran 90 días. Para no tener que renovarlos manualmente, Certbot instala un temporizador automático. Verifica que funciona con:
sudo certbot renew --dry-run
Si no da errores, tienes la renovación asegurada.
[INFO] Si usas un servidor con un firewall como UFW, asegúrate de que los puertos 80 y 443 están permitidos: sudo ufw allow 80 y sudo ufw allow 443.
Configurar PrestaShop para activar HTTPS
Una vez que el certificado está instalado en el servidor, PrestaShop necesita saber que debe usar HTTPS. Esto se hace desde el panel de administración.
Paso 1: Accede al back-office de PrestaShop
Entra en tu administración de PrestaShop (normalmente en tu-dominio.com/admin).
Paso 2: Ve a Parámetros avanzados
En el menú lateral izquierdo, busca "Parámetros avanzados" y luego haz clic en "Rendimiento" o "General", dependiendo de la versión de PrestaShop que uses.
Paso 3: Activa SSL
Busca la opción "Activar SSL" o "Forzar SSL" y cámbiala a "Sí". PrestaShop te preguntará si quieres activar SSL en todas las páginas. Actívalo también.
Paso 4: Guarda los cambios
Guarda la configuración. PrestaShop puede tardar unos segundos en aplicar los cambios. Si todo ha ido bien, tu tienda cargará con HTTPS en todas sus páginas.
Paso 5: Limpia la caché
PrestaShop tiene un sistema de caché que puede guardar versiones antiguas de las páginas. Ve a "Parámetros avanzados" > "Rendimiento" y haz clic en "Vaciar la caché". Esto evitará problemas de contenido mixto (elementos cargados por HTTP dentro de una página HTTPS).
[WARNING] Si después de activar SSL no ves el candado verde, es probable que tengas contenido mixto. Esto significa que algunos recursos (imágenes, CSS, JavaScript) se están cargando a través de HTTP. Para solucionarlo, revisa la sección de solución de problemas al final de este artículo.
Configurar redirecciones 301 de HTTP a HTTPS
Una vez que tienes SSL PrestaShop funcionando, necesitas asegurarte de que todo el tráfico que llega por HTTP se redirija automáticamente a HTTPS. Esto es crucial por dos razones:
- SEO: Si tienes enlaces antiguos apuntando a HTTP, cada uno de ellos debe redirigir a la versión HTTPS con un código 301 (redirección permanente). Así Google transfiere la autoridad de la página antigua a la nueva.
- Seguridad: Si alguien intenta acceder por HTTP, no debe poder ver ni un solo byte de información sin cifrar.
Redirección en Apache
Si tu servidor usa Apache, edita el archivo .htaccess de la raíz de tu PrestaShop y añade estas líneas al principio:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Guarda el archivo y prueba que al visitar http://tu-dominio.com te redirija automáticamente a https://tu-dominio.com.
Redirección en Nginx
Para Nginx, edita el archivo de configuración del sitio virtual y añade:
server {
listen 80;
server_name tu-dominio.com www.tu-dominio.com;
return 301 https://$host$request_uri;
}
Recarga Nginx con sudo systemctl reload nginx.
Redirección desde PrestaShop
PrestaShop también tiene una opción para forzar la redirección. En "Parámetros avanzados" > "General", activa la opción "Redirigir a SSL en todas las páginas". Esto añade la redirección automáticamente sin tener que tocar archivos manualmente.
Actualizar URLs en PrestaShop y bases de datos
A veces, PrestaShop guarda URLs absolutas en la base de datos (por ejemplo, en el contenido de productos o categorías). Si estas URLs apuntan a HTTP, provocarán errores de contenido mixto.
Solución automática
PrestaShop 1.7 y versiones posteriores actualizan las URLs automáticamente cuando activas SSL. Si usas una versión anterior, es posible que necesites una actualización manual.
Solución manual con SQL
Si tienes acceso a phpMyAdmin, puedes ejecutar una consulta SQL para reemplazar todas las URLs HTTP por HTTPS:
UPDATE ps_shop_url SET domain='tu-dominio.com', domain_ssl='tu-dominio.com' WHERE id_shop=1;
También puedes buscar en las tablas de productos y categorías:
UPDATE ps_product SET description = REPLACE(description, 'http://tu-dominio.com', 'https://tu-dominio.com');
[WARNING] Antes de ejecutar cualquier consulta SQL, haz una copia de seguridad de tu base de datos. Un error podría dejar tu tienda inaccesible.
Solución de problemas comunes
Error "No se puede conectar de forma segura"
Esto suele indicar que el certificado no se ha instalado correctamente o que hay un problema con la cadena de certificados. Verifica que el certificado está activo en tu servidor y que el dominio coincide exactamente (incluyendo www y sin www).
Contenido mixto (el candado aparece roto)
Abre las herramientas de desarrollador de tu navegador (F12) y ve a la pestaña "Consola". Verás errores sobre recursos bloqueados por contenido mixto. Localiza esos recursos y cambia sus URLs de HTTP a HTTPS.
Esto puede pasar con:
- Imágenes subidas manualmente con URLs absolutas.
- Módulos de terceros que cargan recursos externos.
- Scripts de seguimiento o publicidad.
Certificado no se renueva automáticamente
Si usaste Syspanel, la renovación es automática. Si usaste Certbot manualmente, verifica que el temporizador está activo con:
sudo systemctl status certbot.timer
Si no está activo, actívalo con:
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
El SEO de mi tienda ha bajado después de instalar SSL
Esto puede pasar si no has configurado las redirecciones 301 correctamente. Revisa que todas las páginas antiguas redirigen a sus equivalentes HTTPS. También asegúrate de que Google ha indexado la nueva versión HTTPS en Search Console.
Preguntas frecuentes
¿Cuánto cuesta un certificado SSL Let's Encrypt?
Nada. Es completamente gratuito y no hay costes ocultos. La única obligación es renovarlo cada 90 días, aunque con la configuración automática ni siquiera tendrás que pensar en ello.
¿Puedo usar Let's Encrypt para una tienda con pasarela de pago?
Sí, los certificados de Let's Encrypt son válidos y seguros para cualquier tipo de página web, incluyendo tiendas online con pagos. Eso sí, si tu pasarela de pago exige un certificado de validación extendida (EV), necesitarás un certificado de pago.
¿Qué hago si mi hosting no permite Let's Encrypt?
La mayoría de los hosting modernos lo permiten. Si el tuyo no lo hace, considera migrar a un servidor VPS o a un hosting que ofrezca SSL gratuito integrado. Es una señal de que el proveedor no está actualizado.
¿Afecta SSL a la velocidad de mi tienda?
Con la configuración adecuada, el impacto es mínimo. Además, HTTPS permite usar HTTP/2, que acelera la carga de páginas al multiplexar las peticiones. En la práctica, tu tienda será más rápida con SSL que sin él.
¿Necesito un certificado diferente para www y sin www?
No. Un solo certificado de Let's Encrypt cubre tanto tu-dominio.com como www.tu-dominio.com. Asegúrate de incluir ambos en la configuración de Certbot.
Conclusión
Instalar SSL PrestaShop con Let's Encrypt es un proceso sencillo que solo tienes que hacer una vez. Los beneficios son inmediatos: más confianza de tus clientes, mejor posicionamiento en Google y una capa extra de seguridad para los datos de tu negocio.
Tanto si usas Syspanel (accesible por el puerto 2106) como si prefieres el control manual con Certbot, has visto que en menos de una hora puedes tener tu tienda funcionando bajo HTTPS. La clave está en no saltarse ningún paso: primero el certificado, luego la configuración en PrestaShop y por último las redirecciones.
Si algo falla, no entres en pánico. Los errores más comunes tienen solución sencilla y están documentados en la sección de problemas de este artículo. Y recuerda: una vez que todo está funcionando, la renovación automática hará su trabajo, así que no tendrás que volver a preocuparte por tu certificado.
Tu tienda online ahora es más segura, más profesional y mejor preparada para convertirse en el éxito que mereces.
