Configurar SSL en PrestaShop con Let's Encrypt
¡Hola! Soy tu técnico de soporte amigable. Hoy vamos a aprender paso a paso cómo configurar un certificado SSL en tu tienda PrestaShop usando Let's Encrypt. Esto es esencial para que tu tienda sea segura (HTTPS) y tus clientes confíen en ella. No te preocupes si no eres un experto en Linux; te guiaré con instrucciones claras y sencillas.
¿Qué es SSL y por qué es importante para tu PrestaShop?
Antes de empezar, entendamos lo básico. SSL (Secure Sockets Layer) es un protocolo que cifra la información que viaja entre el navegador de tus clientes y tu servidor. Cuando lo activas, la URL de tu tienda cambia de HTTP a HTTPS, y aparece un candado en la barra de direcciones. Esto es crucial por varias razones:
- Seguridad de datos: Protege información sensible como contraseñas, números de tarjetas de crédito y datos personales.
- Confianza del cliente: Los visitantes se sienten más seguros al ver el candado, lo que aumenta las tasas de conversión.
- SEO y posicionamiento: Google favorece los sitios con HTTPS, mejorando tu ranking en los resultados de búsqueda.
- Requisito para pagos: Muchas pasarelas de pago (como PayPal o Stripe) exigen HTTPS para funcionar.
Let's Encrypt es una autoridad de certificación gratuita, automatizada y abierta. Es perfecta para tiendas PrestaShop porque es fácil de configurar, se renueva automáticamente y es totalmente válida para el comercio electrónico.
Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Un servidor Linux (Ubuntu, Debian, CentOS, etc.) con acceso root o un usuario con permisos sudo.
- PrestaShop instalado y funcionando en tu servidor.
- Un dominio apuntando a tu servidor (por ejemplo,
tutienda.com). No puede ser una IP. - Acceso SSH al servidor (para ejecutar comandos).
- Puerto 80 y 443 abiertos en el firewall (HTTP y HTTPS).
- Syspanel (HestiaCP) si usas un panel de control. Recuerda que el puerto de acceso es el 2106. Si no usas panel, no te preocupes, los comandos son los mismos.
[INFO] Si usas Syspanel (HestiaCP), puedes acceder a tu panel escribiendo en el navegador:
https://tudominio.com:2106. Allí podrás gestionar tus sitios web.
Paso 1: Acceder a tu servidor por SSH
Primero, necesitas conectarte a tu servidor. Abre una terminal (en Windows usa PowerShell o Putty, en Mac/Linux la terminal nativa) y escribe:
ssh usuario@tudominio.com
Reemplaza usuario con tu nombre de usuario (normalmente root o un usuario con sudo) y tudominio.com con tu dominio. Te pedirá la contraseña. Una vez dentro, verás algo como root@servidor:~#.
Paso 2: Instalar Certbot (el cliente de Let's Encrypt)
Certbot es la herramienta oficial para obtener y gestionar certificados de Let's Encrypt. La instalación varía según tu sistema operativo.
En Ubuntu/Debian
sudo apt update
sudo apt install certbot python3-certbot-apache -y
Si usas Nginx en lugar de Apache, instala python3-certbot-nginx en su lugar.
En CentOS/RHEL
sudo yum install epel-release -y
sudo yum install certbot python3-certbot-apache -y
Verificar la instalación
certbot --version
Deberías ver un número de versión, por ejemplo, certbot 2.6.0.
[TIP] Si tu servidor usa un panel como Syspanel (HestiaCP), es posible que ya tenga Certbot instalado. Puedes verificarlo ejecutando
certbot --version. Si no aparece, instálalo con los comandos anteriores.
Paso 3: Obtener el certificado SSL con Let's Encrypt
Ahora vamos a generar el certificado. Asegúrate de que tu dominio apunte a la IP del servidor y que el sitio web esté accesible por HTTP (puerto 80). Ejecuta:
sudo certbot --apache -d tudominio.com -d www.tudominio.com
Si usas Nginx, cambia --apache por --nginx. Si solo tienes un dominio sin www, puedes omitir el segundo -d.
Certbot te hará algunas preguntas:
- Correo electrónico: Introduce un correo válido para recibir notificaciones de renovación.
- Aceptar términos: Escribe
A(Aceptar). - Compartir correo con EFF: Opcional, puedes decir que no.
- Elegir entre redirección HTTP a HTTPS: Selecciona
2para redirigir todo el tráfico a HTTPS (recomendado).
Si todo va bien, verás un mensaje como:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/tudominio.com/fullchain.pem
¡Felicidades! Tu certificado ya está instalado. Ahora pasemos a PrestaShop.
Paso 4: Configurar PrestaShop para usar HTTPS
Ahora debes decirle a PrestaShop que use la URL segura. Esto se hace desde el panel de administración.
- Accede a tu back office de PrestaShop (normalmente
https://tudominio.com/admin1234). - Ve a Configuración de la tienda → Parámetros generales.
- En la sección Configuración de la tienda, busca la opción Habilitar SSL.
- Actívala (Sí).
- También activa Habilitar SSL en todas las páginas.
- Guarda los cambios.
[WARNING] Después de activar SSL, es posible que algunas imágenes o enlaces sigan cargándose por HTTP. Esto se llama "contenido mixto" y puede romper tu tienda. No te preocupes, lo arreglaremos en el siguiente paso.
Paso 5: Solucionar problemas de contenido mixto
El contenido mixto ocurre cuando tu tienda carga recursos (imágenes, CSS, JavaScript) desde URLs HTTP. Esto puede hacer que el candado aparezca como "no seguro". Para solucionarlo:
Opción A: Usar un módulo de PrestaShop
El módulo "PrestaShop HTTPS & Mixed Content Fixer" (gratuito en el marketplace) escanea y corrige automáticamente las URLs. Instálalo y ejecútalo.
Opción B: Forzar HTTPS en el archivo .htaccess
Si tu servidor usa Apache, edita el archivo .htaccess en la raíz de tu PrestaShop (normalmente en /var/www/html/tutienda/). Agrega estas líneas al principio:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Esto redirigirá todo el tráfico HTTP a HTTPS.
Opción C: Cambiar las URLs en la base de datos
Si tienes muchas URLs antiguas, puedes ejecutar una consulta SQL en tu base de datos (desde phpMyAdmin o línea de comandos):
UPDATE ps_configuration SET value = '1' WHERE name = 'PS_SSL_ENABLED';
UPDATE ps_configuration SET value = '1' WHERE name = 'PS_SSL_ENABLED_EVERYWHERE';
Luego, actualiza las URLs de las imágenes:
UPDATE ps_image_shop SET cover = 1;
[INFO] Si no te sientes cómodo con SQL, usa mejor el módulo o el .htaccess.
Paso 6: Verificar que todo funciona
Después de los cambios, prueba tu tienda:
- Abre
https://tudominio.comen tu navegador. - Haz clic en el candado en la barra de direcciones. Debe decir "Conexión segura".
- Navega por varias páginas (categorías, productos, carrito). Asegúrate de que no aparezcan advertencias de seguridad.
- Usa herramientas como SSL Labs (https://www.ssllabs.com/ssltest/) para verificar la configuración de tu certificado.
Paso 7: Configurar la renovación automática
Los certificados de Let's Encrypt duran 90 días, pero Certbot puede renovarlos automáticamente. Para probar la renovación, ejecuta:
sudo certbot renew --dry-run
Si todo funciona, Certbot configurará un cron job automático. Puedes verificarlo con:
sudo systemctl list-timers | grep certbot
Deberías ver un timer llamado certbot.timer. Si no aparece, puedes crearlo manualmente:
sudo crontab -e
Agrega esta línea para renovar dos veces al día (recomendado):
0 */12 * * * /usr/bin/certbot renew --quiet
[TIP] Si usas Syspanel (HestiaCP), la renovación automática suele estar integrada. Ve a tu panel (puerto 2106) y busca la opción "SSL" en el dominio. Allí puedes activar la renovación automática.
Preguntas frecuentes (FAQ)
¿Puedo usar Let's Encrypt con Syspanel (HestiaCP)?
Sí, totalmente. Syspanel (HestiaCP) tiene integración nativa con Let's Encrypt. Ve a tu panel (puerto 2106), selecciona el dominio, haz clic en "SSL" y elige "Let's Encrypt". Se generará automáticamente. Luego solo debes seguir el Paso 4 y 5 de esta guía.
¿Qué hago si mi tienda deja de cargar después de activar SSL?
Es probable que sea contenido mixto. Revisa la consola del navegador (F12 → Consola) para ver qué recursos se cargan por HTTP. Luego aplica las soluciones del Paso 5.
¿Let's Encrypt es seguro para una tienda online?
Sí, Let's Encrypt ofrece el mismo nivel de cifrado que los certificados de pago. Google y todos los navegadores lo aceptan. Es perfectamente seguro para PrestaShop.
¿Necesito renovar el certificado manualmente?
No, si configuras el cron job o usas Syspanel (HestiaCP), se renovará automáticamente cada 90 días. Solo asegúrate de que el puerto 80 esté abierto para la renovación.
Mi dominio tiene varios subdominios, ¿puedo usar un solo certificado?
Sí, Let's Encrypt admite certificados wildcard (por ejemplo, *.tudominio.com). Para obtenerlo, usa:
sudo certbot --apache -d tudominio.com -d *.tudominio.com
Necesitarás configurar un registro DNS TXT para la validación.
Conclusión
Configurar SSL en PrestaShop con Let's Encrypt es un proceso sencillo que mejora la seguridad, la confianza y el SEO de tu tienda. Siguiendo estos pasos, tendrás tu tienda funcionando con HTTPS en menos de 30 minutos. Recuerda:
- Instala Certbot y genera el certificado.
- Activa SSL en PrestaShop desde el back office.
- Corrige el contenido mixto con módulos o .htaccess.
- Verifica la renovación automática para no preocuparte.
Si en algún momento te sientes perdido, no dudes en contactar a tu proveedor de hosting o a un técnico especializado. ¡Tu tienda ahora es más segura y profesional!
[TIP FINAL] Después de configurar SSL, revisa tu Google Search Console para que Google indexe la versión HTTPS. También actualiza tus enlaces en redes sociales y campañas de email marketing.
¡Espero que esta guía te haya sido útil! Ahora ve y haz que tu PrestaShop brille con HTTPS.
