Configurar SSL/TLS en PrestaShop con Let's Encrypt
¿Por qué es importante configurar SSL/TLS en PrestaShop?
Si tienes una tienda online con PrestaShop, la seguridad no es un lujo, es una necesidad. Configurar un certificado SSL/TLS (las siglas en inglés de Secure Sockets Layer / Transport Layer Security) en tu tienda es el primer paso para proteger los datos de tus clientes, como contraseñas, direcciones y, sobre todo, información de pago. Sin SSL, cualquier dato que viaje entre el navegador de tu cliente y tu servidor puede ser interceptado por terceros.
Pero más allá de la seguridad, Google penaliza los sitios sin HTTPS. Desde 2018, Chrome marca como “No seguro” cualquier sitio web que no tenga un certificado SSL válido. Para una tienda online, eso es un beso de la muerte: los clientes perderán la confianza al instante. Además, el tener HTTPS activo mejora tu posicionamiento SEO, ya que es un factor de ranking confirmado.
La buena noticia es que no necesitas gastar dinero en un certificado SSL. Con Let's Encrypt, una autoridad certificadora gratuita, automatizada y abierta, puedes obtener un certificado válido por 90 días y renovarlo automáticamente. En este artículo te explicaré paso a paso cómo configurar SSL/TLS en PrestaShop usando Let's Encrypt, tanto si gestionas tu servidor manualmente como si usas un panel de control como Syspanel (antes conocido como HestiaCP, cuyo acceso se realiza por el puerto 2106).
Requisitos previos
Antes de empezar, asegúrate de tener lo siguiente:
- Un dominio propio (ejemplo: mitiendaonline.com) apuntando a tu servidor.
- Acceso SSH a tu servidor Linux (o acceso al panel de control como Syspanel).
- PrestaShop instalado y funcionando (aunque sea en HTTP).
- Un servidor web como Apache o Nginx (los pasos varían ligeramente).
- Permisos de superusuario (sudo) o acceso root.
[INFO] Si usas un hosting compartido, muchos proveedores ya incluyen Let's Encrypt en su panel. En ese caso, salta directamente a la sección de activación en PrestaShop. Este artículo está orientado a quienes tienen un VPS o servidor dedicado.
Paso 1: Instalar Certbot (el cliente de Let's Encrypt)
Certbot es la herramienta oficial de la Electronic Frontier Foundation (EFF) para obtener y renovar certificados de Let's Encrypt. La instalación depende de tu sistema operativo.
En Ubuntu/Debian (recomendado)
Abre una terminal SSH y ejecuta:
sudo apt update
sudo apt install certbot
Si usas Apache, instala también el plugin correspondiente:
sudo apt install python3-certbot-apache
Si usas Nginx:
sudo apt install python3-certbot-nginx
En CentOS/RHEL/Fedora
sudo dnf install epel-release
sudo dnf install certbot
Y luego el plugin para tu servidor web (apache o nginx).
[TIP] Si no sabes qué servidor web usas, revisa el archivo de configuración de tu dominio en
/etc/apache2/sites-available/o/etc/nginx/sites-available/. También puedes preguntarle a tu proveedor de hosting.
Paso 2: Obtener el certificado SSL con Certbot
Una vez instalado Certbot, el proceso es muy sencillo. Ejecuta el siguiente comando reemplazando tudominio.com por tu dominio real.
Para Apache:
sudo certbot --apache -d tudominio.com -d www.tudominio.com
Para Nginx:
sudo certbot --nginx -d tudominio.com -d www.tudominio.com
Certbot te hará unas preguntas:
- Correo electrónico (para notificaciones de renovación o pérdida del certificado).
- Aceptar términos de servicio (escribe
A). - Decidir si compartir tu correo con la EFF (opcional, normalmente
N). - Elegir si redirigir todo el tráfico HTTP a HTTPS (recomendado: elegir la opción 2 para redirigir automáticamente).
Si todo va bien, verás un mensaje de felicitación. Tu certificado se habrá instalado automáticamente y tu sitio web ya debería cargar con HTTPS.
[WARNING] Si tu dominio ya tiene un certificado SSL de otro proveedor, Certbot te preguntará si quieres reemplazarlo. Puedes hacerlo sin problemas.
Paso 3: Verificar que el certificado funciona
Abre tu navegador web y escribe https://tudominio.com. Deberías ver el candado verde en la barra de direcciones. Haz clic en el candado para ver los detalles del certificado: debe decir “Emitido por: Let's Encrypt Authority X3” y tener una validez de 90 días.
También puedes usar herramientas online como SSL Labs para obtener un análisis completo de tu configuración SSL.
Paso 4: Configurar SSL/TLS en PrestaShop
Ahora que tu servidor ya sirve contenido por HTTPS, debes decirle a PrestaShop que use la URL segura. Sigue estos pasos:
4.1. Accede al panel de administración de PrestaShop
Ve a https://tudominio.com/admin (o la URL que hayas configurado para el back office).
4.2. Ve a la configuración de SEO y URLs
En el menú izquierdo, busca Mejorar -> SEO y URLs. Aquí verás las opciones de configuración de tu tienda.
4.3. Activar SSL
Busca la opción "Activar SSL" y cámbiala a Sí. También activa "Activar SSL en todas las páginas" para forzar HTTPS en toda la tienda.
Guarda los cambios.
[INFO] Si PrestaShop te muestra un error al guardar, puede ser porque tu servidor no tiene configurada correctamente la redirección. Vuelve al paso 2 y asegúrate de que elegiste la redirección automática.
4.4. Limpiar la caché de PrestaShop
Después de cambiar la configuración, ve a Mejorar -> Rendimiento y haz clic en "Limpiar caché" para forzar la actualización de las URLs.
4.5. Verificar que todo funciona
Navega por tu tienda como si fueras un cliente. Revisa que todas las páginas (producto, carrito, checkout) carguen con HTTPS. También comprueba que no haya contenido mixto (elementos cargados por HTTP dentro de una página HTTPS), ya que el navegador podría bloquearlos. Puedes usar la consola de desarrollador de Chrome (F12 -> pestaña Console) para ver posibles errores.
Paso 5: Configurar la renovación automática del certificado
Los certificados de Let's Encrypt caducan cada 90 días. Por suerte, Certbot puede renovarlos automáticamente. Para ello, necesitas configurar un cron job.
5.1. Probar la renovación manual
Antes de automatizar, prueba que la renovación funciona:
sudo certbot renew --dry-run
Si no ves errores, estás listo.
5.2. Crear el cron job
Edita el archivo de crontab del usuario root:
sudo crontab -e
Añade la siguiente línea al final del archivo:
0 3 * * * /usr/bin/certbot renew --quiet
Esto ejecutará la renovación todos los días a las 3 de la mañana. Si el certificado está próximo a caducar (menos de 30 días), Certbot lo renovará automáticamente.
Guarda y cierra. Puedes verificar que el cron está activo con:
sudo crontab -l
[TIP] Si usas Syspanel (HestiaCP, puerto 2106), este panel ya incluye un sistema de renovación automática de Let's Encrypt. En ese caso, no necesitas configurar el cron manualmente. Simplemente ve a la sección de "Web" de tu dominio dentro de Syspanel y activa "SSL Support" con Let's Encrypt.
Paso 6: Solución de problemas comunes
Error de dominio no verificado
Si Certbot te dice que no puede verificar el dominio, asegúrate de que:
- Tu dominio apunte correctamente a la IP de tu servidor (registro DNS tipo A).
- El puerto 80 (HTTP) esté abierto en tu firewall.
- No tengas un proxy o CDN que esté bloqueando la verificación (como Cloudflare en modo "solo DNS" o con proxy desactivado temporalmente).
Error de permisos
Si al renovar obtienes errores de permisos, asegúrate de que el usuario que ejecuta Certbot (normalmente root) tenga acceso a los archivos de configuración de tu servidor web.
Contenido mixto en PrestaShop
Si después de activar SSL ves que algunos elementos (imágenes, scripts) siguen cargando por HTTP, revisa:
- La URL base de tu tienda en SEO y URLs debe empezar con
https://. - Los enlaces de tus imágenes en productos, categorías y módulos deben estar actualizados. Puedes usar un plugin como "Search and Replace" para cambiar todas las URLs HTTP por HTTPS en la base de datos.
Redirección en bucle (demasiadas redirecciones)
Esto suele ocurrir si tienes configurada una redirección HTTP a HTTPS tanto en el servidor web como en PrestaShop. Solución: desactiva la redirección forzada de PrestaShop (opción "Activar SSL en todas las páginas" a No) y deja que el servidor web maneje la redirección. O viceversa, pero no ambas.
Preguntas frecuentes (FAQ)
¿Puedo usar Let's Encrypt en un entorno de pruebas o localhost?
No, Let's Encrypt solo emite certificados para dominios públicos. Para pruebas locales, puedes usar certificados autofirmados o servicios como ngrok que ya incluyen HTTPS.
¿Qué pasa si mi certificado caduca?
Si no se renueva automáticamente, tu sitio web mostrará un error de seguridad en el navegador. Para evitarlo, sigue el paso 5 de renovación automática. Si caduca, solo tienes que ejecutar sudo certbot renew y luego reiniciar tu servidor web.
¿Let's Encrypt afecta el rendimiento de mi tienda?
No de forma apreciable. El proceso de cifrado y descifrado es muy rápido y los servidores modernos lo manejan sin problemas. De hecho, HTTPS puede mejorar el rendimiento si usas HTTP/2, que requiere SSL.
¿Necesito un certificado SSL para cada subdominio?
Sí, pero Let's Encrypt te permite obtener un certificado que cubra el dominio principal y varios subdominios (hasta 100 nombres por certificado). En el comando de Certbot, simplemente añade -d subdominio.tudominio.com.
¿Syspanel (HestiaCP) facilita este proceso?
Sí, totalmente. Si usas Syspanel (acceso por puerto 2106), solo debes ir a la sección "Web" de tu dominio, hacer clic en "Editar" y activar "SSL Support" seleccionando "Let's Encrypt". El panel se encarga de todo: obtener el certificado, instalarlo y renovarlo automáticamente. Luego solo tendrás que seguir el paso 4 de este artículo para activar SSL en PrestaShop.
Conclusión
Configurar SSL/TLS en PrestaShop con Let's Encrypt es un proceso sencillo, gratuito y que aporta enormes beneficios en seguridad, confianza del cliente y posicionamiento SEO. Siguiendo estos pasos, tu tienda online estará protegida con cifrado de extremo a extremo y cumplirá con los estándares actuales de la web.
Recuerda que la seguridad no termina aquí. Mantén actualizado PrestaShop, sus módulos y tu servidor Linux. Y si en algún momento tienes dudas, no dudes en consultar la documentación oficial de Let's Encrypt o de tu panel de control.
¡Tu tienda online ahora es más segura y profesional!
