Cómo configurar SSL en PrestaShop con Let's Encrypt
¿Por qué necesitas SSL en tu tienda PrestaShop?
Si tienes una tienda online con PrestaShop, configurar SSL PrestaShop no es una opción, es una necesidad. SSL (Secure Sockets Layer) es el protocolo que cifra la información entre el navegador del cliente y tu servidor. Sin él, datos como contraseñas, números de tarjetas de crédito o direcciones viajan en texto plano, lo que es un riesgo de seguridad enorme.
Además, desde hace años, Google utiliza HTTPS como señal de ranking. Esto significa que tener HTTPS PrestaShop mejora tu posicionamiento en buscadores. Y no solo eso: los navegadores modernos marcan los sitios sin SSL como "No seguros", lo que ahuyenta a los compradores.
La buena noticia es que no necesitas gastar dinero en certificados caros. Let’s Encrypt ofrece certificados SSL gratuitos, automáticos y ampliamente reconocidos. En esta guía te explicaré paso a paso cómo configurar Let's Encrypt PrestaShop de forma sencilla, incluso si no eres un experto técnico.
[INFO] Este tutorial asume que tienes acceso a tu panel de hosting o a un VPS. Si usas un hosting compartido, muchos proveedores (como Syspanel) ya incluyen opciones para instalar Let's Encrypt con un clic.
Requisitos previos
Antes de empezar, asegúrate de tener lo siguiente:
- Acceso a tu servidor: Necesitas poder ejecutar comandos (SSH) o usar un panel de control como Syspanel.
- Un dominio apuntando a tu servidor: Por ejemplo,
tutienda.com. No puede funcionar con dominios locales. - PrestaShop instalado: Puede ser una tienda nueva o ya en funcionamiento.
- Puerto 80 abierto: Let's Encrypt necesita verificar que controlas el dominio mediante HTTP.
- Permisos de administrador (root o sudo): Para instalar el cliente Certbot.
[WARNING] Si tu tienda ya está funcionando sin SSL, haz una copia de seguridad completa antes de empezar. Incluye archivos y base de datos. Aunque el proceso es seguro, siempre es mejor prevenir.
Paso 1: Instalar Certbot (el cliente de Let's Encrypt)
Certbot es la herramienta oficial para obtener y renovar certificados de Let's Encrypt. Se instala fácilmente en la mayoría de sistemas Linux.
En sistemas basados en Debian/Ubuntu (los más comunes en hosting)
Abre una terminal SSH y ejecuta:
sudo apt update
sudo apt install certbot python3-certbot-apache
Si usas Nginx en lugar de Apache, instala el plugin correspondiente:
sudo apt install certbot python3-certbot-nginx
En sistemas basados en CentOS/RHEL
sudo yum install epel-release
sudo yum install certbot python3-certbot-apache
[TIP] Si tu hosting usa Syspanel, puedes instalar Let's Encrypt directamente desde el panel, sin necesidad de SSH. Busca la opción "SSL" o "Certificados" en el apartado de tu dominio, puerto 2106.
Paso 2: Obtener el certificado SSL con Certbot
Una vez instalado Certbot, es hora de obtener el certificado. El proceso varía ligeramente según el servidor web.
Para servidores Apache
Ejecuta:
sudo certbot --apache
Certbot te hará algunas preguntas:
- Dirección de correo electrónico: Para notificaciones de renovación (opcional pero recomendado).
- Aceptar términos de servicio: Escribe
Apara aceptar. - Seleccionar dominio: Te mostrará los dominios configurados en Apache. Selecciona el que quieras proteger (por ejemplo,
tutienda.comywww.tutienda.com). - Redirigir todo el tráfico a HTTPS: Responde
2para que Certbot configure automáticamente la redirección de HTTP a HTTPS.
Para servidores Nginx
sudo certbot --nginx
El proceso es similar: Certbot modificará tu configuración de Nginx para habilitar HTTPS.
Si no usas Apache ni Nginx (servidor custom)
Puedes usar el modo standalone:
sudo certbot certonly --standalone -d tutienda.com -d www.tutienda.com
Esto generará los archivos del certificado en /etc/letsencrypt/live/tutienda.com/. Luego deberás configurar manualmente tu servidor web para usarlos.
[INFO] Certbot crea automáticamente un certificado válido por 90 días. No te preocupes, en el Paso 5 veremos cómo renovarlo automáticamente.
Paso 3: Configurar PrestaShop para usar HTTPS
Una vez que el certificado está instalado en el servidor, debes decirle a PrestaShop que use HTTPS PrestaShop de forma segura.
3.1. Acceder al back office de PrestaShop
Ve a tu panel de administración: https://tutienda.com/adminXXXXX (sustituye adminXXXXX por tu carpeta real).
3.2. Ir a la configuración de SEO y URLs
En el menú izquierdo, ve a Configuración de la tienda > Tráfico y SEO > SEO y URLs.
3.3. Activar SSL
Busca las siguientes opciones y actívalas:
- Activar SSL: Ponlo en Sí.
- Activar SSL en todas las páginas: Ponlo en Sí.
- URL base de la tienda: Cambia
http://porhttps://en ambos campos (URL de la tienda y URL SSL). Por ejemplo:https://tutienda.com.
Guarda los cambios.
3.4. Verificar que todo funciona
Abre tu tienda en una ventana de incógnito y visita https://tutienda.com. Deberías ver el candado verde en la barra de direcciones. Si ves algún error de contenido mixto (imágenes o scripts cargados con HTTP), continúa con el siguiente paso.
[WARNING] Si tu tienda ya tenía contenido (imágenes, enlaces), algunos elementos pueden seguir cargándose con HTTP. Para solucionarlo, ve a Configuración de la tienda > Parámetros generales > Mantenimiento y marca la opción "Regenerar miniaturas". También puedes usar un plugin de búsqueda y reemplazo en la base de datos para cambiar todas las URL de HTTP a HTTPS.
Paso 4: Redirigir todo el tráfico HTTP a HTTPS (opcional pero recomendado)
Aunque Certbot ya pudo haber configurado la redirección, es bueno asegurarse. Esto garantiza que cualquier visita a http://tutienda.com sea redirigida automáticamente a https://tutienda.com.
Si usas Apache
Edita el archivo .htaccess en la raíz de tu PrestaShop (normalmente en /var/www/html/tutienda/). Añade estas líneas al principio:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Guarda el archivo y prueba.
Si usas Nginx
Añade en el bloque server de tu configuración (archivo en /etc/nginx/sites-available/tutienda):
server {
listen 80;
server_name tutienda.com www.tutienda.com;
return 301 https://$server_name$request_uri;
}
Luego recarga Nginx:
sudo systemctl reload nginx
[TIP] Si tu hosting usa Syspanel, puedes configurar la redirección desde el panel de dominios, en la sección "Redirecciones", puerto 2106.
Paso 5: Automatizar la renovación del certificado
Los certificados de Let's Encrypt caducan cada 90 días. Por suerte, Certbot puede renovarlos automáticamente.
Verificar que la renovación automática está activa
Ejecuta:
sudo certbot renew --dry-run
Si no hay errores, Certbot se encargará de renovar automáticamente. En la mayoría de sistemas, se añade un cron o un timer de systemd.
Comprobar el timer de systemd (en sistemas modernos)
sudo systemctl list-timers | grep certbot
Deberías ver algo como certbot.timer. Si no aparece, puedes crearlo manualmente:
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
Si tu hosting no tiene systemd (algunos VPS antiguos)
Añade una tarea cron:
sudo crontab -e
Y añade esta línea:
0 3 * * * /usr/bin/certbot renew --quiet
Esto ejecutará la renovación a las 3 AM cada día. Si el certificado está próximo a caducar, se renovará automáticamente.
[INFO] No es necesario reiniciar PrestaShop tras la renovación. Certbot recarga automáticamente el servidor web.
Solución de problemas comunes (FAQ)
1. Error "El dominio no responde" al obtener el certificado
Asegúrate de que tu dominio apunta correctamente a la IP de tu servidor y que el puerto 80 está abierto. Puedes verificarlo con herramientas como ping o dig.
2. La tienda carga pero sin el candado verde (contenido mixto)
Esto ocurre cuando hay recursos (imágenes, CSS, JS) que se cargan con HTTP. Soluciones:
- Ve a Configuración de la tienda > Parámetros generales > Mantenimiento y marca "Regenerar miniaturas".
- Usa un plugin como "Really Simple SSL" (si usas WordPress, no aplica en PrestaShop, pero puedes buscar módulos similares en el marketplace de PrestaShop).
- Revisa manualmente en el código de tus temas o módulos si hay URLs hardcodeadas con HTTP.
3. Certificado no se renueva automáticamente
Comprueba que el servicio Certbot está activo:
sudo systemctl status certbot
Si no lo ves, revisa los logs en /var/log/letsencrypt/. También puedes forzar una renovación manual:
sudo certbot renew
4. Quiero usar Let's Encrypt en un hosting compartido sin SSH
Muchos paneles de control como Syspanel (puerto 2106) ofrecen la opción de instalar Let's Encrypt directamente desde la interfaz web. Busca en la sección de tu dominio la opción "SSL" o "Certificados". Si no aparece, contacta con tu proveedor de hosting.
5. Mi tienda usa Cloudflare, ¿afecta?
Cloudflare ofrece su propio SSL gratuito. Si usas Cloudflare, puedes activar "Full (strict)" en la configuración SSL/TLS de Cloudflare. No necesitas Let's Encrypt en el servidor, pero si lo deseas, puedes combinarlo (SSL de origen con Let's Encrypt y SSL de borde con Cloudflare). Asegúrate de que la configuración sea compatible.
6. ¿Puedo tener SSL en un subdominio?
Sí, Let's Encrypt funciona con cualquier dominio o subdominio. Solo asegúrate de que el subdominio apunte al mismo servidor.
Conclusión
Configurar SSL PrestaShop con Let's Encrypt es un proceso sencillo que mejora la seguridad, el SEO y la confianza de tus clientes. Con Certbot, en pocos minutos tendrás HTTPS PrestaShop funcionando y con renovación automática.
Recuerda: una vez configurado, revisa periódicamente que el certificado esté activo y que tu tienda no tenga contenido mixto. Si sigues los pasos de esta guía, tu tienda estará protegida y lista para vender con total seguridad.
[WARNING] Si en algún momento cambias de servidor o de IP, deberás reinstalar el certificado. Pero no te preocupes, el proceso es el mismo que acabamos de ver.
¡Ahora ya puedes dormir tranquilo sabiendo que los datos de tus clientes están cifrados y tu tienda es más confiable!
