🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo activar SSL/TLS en PrestaShop con Let's Encrypt

Actualizado el 2 de octubre de 2025

¿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

  1. Inicia sesión en tu cPanel con tus credenciales de administrador.
  2. Busca la sección "Seguridad" y haz clic en "SSL/TLS Status".
  3. Verás una lista de tus dominios. Haz clic en "Run AutoSSL".
  4. cPanel intentará instalar automáticamente un certificado de Let's Encrypt (o de su proveedor asociado).
  5. Espera entre 1 y 5 minutos. El estado cambiará a "SSL installed".

Si usas Syspanel (HestiaCP)

  1. Accede a https://tudominio.com:2106 con tu usuario y contraseña.
  2. En el menú lateral, busca la opción "Web" o "Dominios".
  3. Haz clic en el dominio de tu tienda.
  4. Busca el botón "SSL" o "Let's Encrypt".
  5. Marca las opciones "SSL" y "Let's Encrypt" y haz clic en "Guardar".
  6. 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.

  1. Accede a tu panel de administración de PrestaShop (normalmente en tudominio.com/adminXXXX).
  2. Ve a "Parámetros avanzados" > "Rendimiento" (en versiones antiguas) o "Configuración avanzada" > "General" (en versiones nuevas).
  3. Busca la sección "Parámetros de la tienda" o "Opciones de URL".
  4. Verás dos campos: "Dominio de la tienda" y "Dominio SSL de la tienda".
  5. Cambia ambos a https://tudominio.com (con el protocolo HTTPS).
  6. En el campo "URL base", asegúrate de que también use https://.
  7. 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

  1. Abre tu tienda en https://tudominio.com y verifica que el candado aparece en la barra de direcciones.
  2. Haz clic en el candado y revisa que dice "Conexión segura".
  3. Navega por varias páginas (categorías, productos, carrito, checkout) y asegúrate de que no aparecen avisos de contenido mixto.
  4. 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:

  1. Desactiva temporalmente la redirección del .htaccess.
  2. Activa el SSL en PrestaShop.
  3. 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:

  1. Usa la herramienta "Why No Padlock" para identificar los recursos.
  2. Busca en tu base de datos URLs con http:// y reemplázalas por https://.
  3. 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:

  1. Verifica que el dominio sigue apuntando a tu servidor.
  2. Comprueba que los registros DNS no han cambiado.
  3. 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!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel