Cómo activar SSL/TLS en PrestaShop con Let's Encrypt
¿Por qué necesitas SSL/TLS en tu PrestaShop?
Si tienes una tienda online con PrestaShop, la seguridad no es un lujo: es una necesidad absoluta. El protocolo SSL/TLS (Secure Sockets Layer / Transport Layer Security) es la capa de cifrado que protege la información que viaja entre el navegador de tus clientes y tu servidor. Sin él, datos como contraseñas, números de tarjeta o direcciones personales viajan en texto plano, lo que los hace vulnerables a ataques de intermediarios.
Activar SSL PrestaShop no solo protege los datos de tus clientes, sino que también mejora tu posicionamiento en Google. Desde 2014, Google utiliza el cifrado como señal de ranking, y desde 2018, Chrome marca como "No seguro" cualquier sitio HTTP. Si tu tienda no tiene un candado verde, tus clientes desconfiarán y tus ventas caerán.
La mejor noticia es que hoy puedes activar SSL PrestaShop de forma gratuita y automática gracias a Let's Encrypt, una autoridad certificadora que emite certificados SSL/TLS sin coste alguno. En esta guía te explicaré paso a paso cómo configurarlo, incluso si no tienes experiencia técnica avanzada.
¿Qué necesitas antes de empezar?
Antes de lanzarnos a la configuración, asegúrate de cumplir estos requisitos básicos:
- Acceso a tu panel de control de hosting (cPanel, Plesk, Syspanel o similar).
- Acceso SSH (opcional pero recomendado para verificación manual).
- Un dominio apuntando a tu servidor (con registros DNS correctamente configurados).
- PrestaShop instalado (versión 1.7 o 8.x recomendada, aunque la 1.6 también funciona).
- Permisos de administrador en PrestaShop para cambiar la configuración de URLs.
Si tu hosting utiliza Syspanel (antes conocido como HestiaCP), recuerda que el acceso al panel se realiza a través del puerto 2106 (por ejemplo, https://tudominio.com:2106). Este panel incluye soporte integrado para Let's Encrypt, lo que facilita mucho el proceso.
Paso 1: Instalar el certificado Let's Encrypt en tu servidor
El primer paso es generar e instalar el certificado SSL en tu servidor. Dependiendo de tu panel de control, el proceso varía ligeramente, pero los conceptos son los mismos.
Si usas cPanel
- Inicia sesión en tu cPanel con tus credenciales de administrador.
- Busca la sección "Seguridad" y haz clic en "SSL/TLS Status".
- Verás una lista de tus dominios. Haz clic en "Run AutoSSL".
- cPanel intentará instalar automáticamente un certificado de Let's Encrypt (o de su proveedor asociado).
- Espera entre 1 y 5 minutos. El estado cambiará a "SSL installed".
Si usas Syspanel (HestiaCP)
- Accede a
https://tudominio.com:2106con tu usuario y contraseña. - En el menú lateral, busca la opción "Web" o "Dominios".
- Haz clic en el dominio de tu tienda.
- Busca el botón "SSL" o "Let's Encrypt".
- Marca las opciones "SSL" y "Let's Encrypt" y haz clic en "Guardar".
- El panel generará el certificado automáticamente en menos de 30 segundos.
Verificación manual con SSH (avanzado)
Si prefieres el control total o tu hosting no tiene soporte integrado, puedes generar el certificado manualmente:
# Instala certbot (en sistemas Debian/Ubuntu)
sudo apt update
sudo apt install certbot python3-certbot-apache
# Ejecuta la instalación para tu dominio
sudo certbot --apache -d tudominio.com -d www.tudominio.com
Certbot configurará automáticamente Apache y renovará el certificado cada 90 días. Para nginx, usa python3-certbot-nginx.
Paso 2: Configurar PrestaShop para usar SSL
Una vez que el certificado está instalado en el servidor, debes decirle a PrestaShop que lo utilice. Esto se hace desde el panel de administración.
- Accede a tu panel de administración de PrestaShop (normalmente en
tudominio.com/adminXXXX). - Ve a "Parámetros avanzados" > "Rendimiento" (en versiones antiguas) o "Configuración avanzada" > "General" (en versiones nuevas).
- Busca la sección "Parámetros de la tienda" o "Opciones de URL".
- Verás dos campos: "Dominio de la tienda" y "Dominio SSL de la tienda".
- Cambia ambos a
https://tudominio.com(con el protocolo HTTPS). - En el campo "URL base", asegúrate de que también use
https://. - Guarda los cambios.
Forzar el uso de SSL en toda la tienda
Para que todas las páginas usen HTTPS de forma obligatoria, activa la opción "Forzar SSL en todas las páginas". Esta opción suele estar en:
- "Parámetros avanzados" > "Rendimiento" (versiones 1.6 y 1.7).
- "Configuración de la tienda" > "Opciones de seguridad" (PrestaShop 8).
Al activar esta opción, PrestaShop redirigirá automáticamente cualquier visita HTTP a HTTPS, evitando contenido mixto.
Paso 3: Actualizar URLs y corregir contenido mixto
Este es el paso que más dolores de cabeza causa, pero es fundamental para que tu tienda funcione correctamente con SSL PrestaShop.
Cambiar URLs en la base de datos
PrestaShop guarda las URLs absolutas en la base de datos. Si no las actualizas, muchos recursos (imágenes, CSS, JS) se cargarán desde HTTP, lo que provocará el error de "contenido mixto" y el candado se mostrará roto.
Para solucionarlo, puedes usar una consulta SQL desde phpMyAdmin:
UPDATE ps_configuration SET value = 'https://tudominio.com' WHERE name IN ('PS_SHOP_DOMAIN', 'PS_SHOP_DOMAIN_SSL');
UPDATE ps_shop_url SET domain = 'tudominio.com', domain_ssl = 'tudominio.com', physical_uri = '/';
IMPORTANTE: Reemplaza ps_ por el prefijo real de tu base de datos (puede ser ps_, prestashop_, shop_, etc.). También asegúrate de hacer una copia de seguridad antes de ejecutar estas consultas.
Buscar y reemplazar URLs HTTP en la base de datos
Una forma más completa es buscar y reemplazar todas las URLs antiguas:
UPDATE ps_product SET description = REPLACE(description, 'http://tudominio.com', 'https://tudominio.com');
UPDATE ps_product_lang SET description = REPLACE(description, 'http://tudominio.com', 'https://tudominio.com');
Sin embargo, es más práctico usar un plugin o una herramienta como "Search Replace DB" para hacerlo de forma masiva sin errores.
Paso 4: Configurar redirecciones 301 de HTTP a HTTPS
Para que tanto los usuarios como Google entiendan que tu web definitivamente usa HTTPS, debes configurar redirecciones 301. Esto también evita el contenido duplicado.
Si usas Apache (.htaccess)
Abre el archivo .htaccess en 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]
Si usas Nginx
Añade esta regla en el bloque server que escucha en el puerto 80:
server {
listen 80;
server_name tudominio.com www.tudominio.com;
return 301 https://$host$request_uri;
}
En Syspanel (HestiaCP)
Syspanel ya aplica redirecciones automáticas cuando activas SSL y Let's Encrypt. Si no lo hace, verifica que en la configuración del dominio tengas marcada la opción "Redirect to HTTPS".
Paso 5: Verificar que todo funciona correctamente
Una vez completados los pasos anteriores, es hora de comprobar que todo está bien configurado.
Pruebas manuales
- Abre tu tienda en
https://tudominio.comy verifica que el candado aparece en la barra de direcciones. - Haz clic en el candado y revisa que dice "Conexión segura".
- Navega por varias páginas (categorías, productos, carrito, checkout) y asegúrate de que no aparecen avisos de contenido mixto.
- Usa las herramientas de desarrollador de Chrome (F12 > pestaña "Console") para ver si hay errores de recursos bloqueados.
Herramientas externas
- SSL Labs (ssllabs.com/ssltest): Analiza la configuración SSL de tu servidor y le da una calificación. Busca obtener una "A".
- Why No Padlock (whynopadlock.com): Identifica exactamente qué recursos se cargan sin HTTPS.
- Google Search Console: Después de activar SSL PrestaShop, añade la propiedad con
https://y solicita la indexación.
Paso 6: Renovación automática del certificado
Los certificados de Let's Encrypt tienen una validez de 90 días. La buena noticia es que la renovación es automática si tu servidor está correctamente configurado.
- cPanel: La renovación automática está integrada en AutoSSL.
- Syspanel: También renueva automáticamente. Puedes verificar el estado en la sección SSL del dominio.
- Manual con certbot: Añade un cron job:
sudo crontab -e
# Añade esta línea para renovar dos veces al día
0 0,12 * * * /usr/bin/certbot renew --quiet
[WARNING]: Si utilizas un hosting compartido, confirma que tu proveedor permite la renovación automática. Algunos hosts requieren verificación manual cada 90 días.
Resolución de problemas comunes
Error "Too Many Redirects"
Este error suele ocurrir cuando hay un conflicto entre la redirección del servidor y la de PrestaShop. Solución:
- Desactiva temporalmente la redirección del
.htaccess. - Activa el SSL en PrestaShop.
- Vuelve a activar la redirección del
.htaccess.
Contenido mixto (Mixed Content)
Si ves que el candado aparece con una "i" o un triángulo amarillo, significa que hay recursos cargados desde HTTP. Solución:
- Usa la herramienta "Why No Padlock" para identificar los recursos.
- Busca en tu base de datos URLs con
http://y reemplázalas porhttps://. - En PrestaShop 1.7+, ve a "Parámetros avanzados" > "Rendimiento" y activa la opción "Utilizar SSL en todos los recursos".
Certificado no se renueva
Si el certificado caduca y no se renueva automáticamente:
- Verifica que el dominio sigue apuntando a tu servidor.
- Comprueba que los registros DNS no han cambiado.
- En Syspanel, revisa los logs en
/var/log/letsencrypt/.
[TIP]: Configura una alerta de caducidad en tu calendario para revisar manualmente cada 80 días. Es un buen hábito de seguridad.
Preguntas frecuentes (FAQ)
¿Es realmente gratis Let's Encrypt?
Sí, Let's Encrypt es una autoridad certificadora sin ánimo de lucro que ofrece certificados SSL/TLS gratuitos. La única limitación es que la validez es de 90 días, aunque la renovación es automática.
¿Puedo usar Let's Encrypt en PrestaShop 1.6?
Sí, funciona perfectamente. Solo asegúrate de que tu versión de PHP sea compatible (al menos 5.6, recomendado 7.x).
¿Afecta SSL a la velocidad de mi tienda?
El cifrado añade una pequeña sobrecarga, pero con la configuración adecuada (HTTP/2, caché) es prácticamente imperceptible. De hecho, HTTPS permite usar HTTP/2 que acelera la carga.
¿Qué pasa si mi hosting no soporta Let's Encrypt?
Puedes generar el certificado manualmente con certbot y configurarlo en tu servidor. Si tu hosting es muy restrictivo, considera cambiar a uno que ofrezca SSL gratuito integrado.
¿Necesito un certificado SSL diferente para subdominios?
Si usas subdominios (por ejemplo, tienda.tudominio.com), necesitarás un certificado wildcard (*.tudominio.com) o certificados individuales para cada subdominio. Let's Encrypt ofrece wildcards mediante verificación DNS.
¿Cómo sé si mi SSL PrestaShop está funcionando correctamente?
Puedes usar la herramienta de Google "Mobile-Friendly Test" o simplemente navegar por tu tienda en modo incógnito y verificar el candado en todas las páginas.
Conclusión: la seguridad de tu tienda es una inversión
Activar SSL PrestaShop con Let's Encrypt no es un proceso complicado si sigues estos pasos con calma. La seguridad de tu tienda online y la confianza de tus clientes dependen de ello, y ahora tienes a tu disposición una solución gratuita y profesional.
Recuerda que la ciberseguridad no es un evento único, sino un proceso continuo. Además del SSL, asegúrate de mantener PrestaShop actualizado, usar contraseñas fuertes y hacer copias de seguridad periódicas.
[INFO]: Si encuentras algún problema durante el proceso, no dudes en contactar con tu proveedor de hosting. La mayoría ofrece soporte gratuito para la instalación de certificados SSL.
Ahora que tu tienda está protegida con SSL/TLS, puedes centrarte en lo que realmente importa: hacer crecer tu negocio online con la tranquilidad de que los datos de tus clientes están seguros. ¡Buenas ventas!
