Cómo configurar SSL Let's Encrypt en PrestaShop con DirectAdmin
Antes de Empezar: ¿Qué Necesitas y Por Qué es Importante el SSL?
Si estás leyendo esto, probablemente ya tienes una tienda online en PrestaShop y quieres dar el salto a la seguridad total con HTTPS. ¡Excelente decisión! Tener un certificado SSL (Secure Sockets Layer) es imprescindible hoy en día, no solo para proteger los datos de tus clientes (como tarjetas de crédito o direcciones), sino también para ganarte la confianza de Google y mejorar tu posicionamiento SEO. Los navegadores modernos marcan como "No segura" cualquier web sin HTTPS, lo que espantaría a cualquier comprador potencial.
La buena noticia es que no necesitas gastar dinero en certificados de pago. Let's Encrypt ofrece certificados SSL gratuitos, y si tu hosting utiliza DirectAdmin (uno de los paneles de control más populares y completos), el proceso de configuración es muy sencillo. En esta guía extensa, te voy a llevar de la mano, paso a paso, para que configures SSL Let's Encrypt en PrestaShop con DirectAdmin, incluso si no eres un experto en tecnología.
Primero, aclaremos un par de cosas importantes. Un certificado SSL es un archivo de datos que vincula una clave criptográfica a los datos de tu organización. Cuando se instala en tu servidor web, activa el candado y el protocolo HTTPS. Esto permite que la conexión entre tu navegador y el servidor sea cifrada, por lo que los datos viajan de forma segura.
Para este tutorial, asumiremos que ya tienes:
- Un dominio apuntando a tu servidor con DirectAdmin.
- PrestaShop instalado y funcionando correctamente en dicho dominio.
- Acceso al panel de control de DirectAdmin (normalmente en
https://tu-servidor:2222).
[INFO]: Si tu hosting usa Syspanel (antes conocido como HestiaCP), el proceso es diferente. Accede siempre a través del puerto 2106 y busca la sección "Web" o "SSL" en el menú. En este artículo nos centramos exclusivamente en DirectAdmin, pero el concepto de Let's Encrypt es el mismo.
Paso 1: Accede a tu Panel de DirectAdmin
El primer paso es lógico: necesitas entrar a tu panel de control. Abre tu navegador web favorito (Chrome, Firefox, Edge, etc.) y escribe la URL de acceso a DirectAdmin. Normalmente es algo como https://tu-ip-del-servidor:2222 o https://tu-dominio.com:2222. Si no estás seguro, pregunta a tu proveedor de hosting.
Introduce tu nombre de usuario y contraseña. Una vez dentro, verás el escritorio de DirectAdmin, que está lleno de iconos y secciones. No te abrumes, solo necesitamos buscar una sección específica. En la mayoría de las versiones de DirectAdmin, encontrarás una barra de búsqueda en la parte superior o un listado de iconos. Busca el icono que dice "SSL Certificates" (Certificados SSL) o simplemente escribe "SSL" en el buscador.
[TIP]: Si tu cuenta de DirectAdmin es de tipo "Reseller" o "Admin", tendrás más opciones. Para este tutorial, nos centramos en la vista de "Usuario", que es la más común para gestionar un solo dominio.
Paso 2: Solicitar el Certificado Let's Encrypt
Una vez dentro de la sección "SSL Certificates", verás varias pestañas u opciones. Busca la pestaña que dice "Let's Encrypt". Esta es la magia de DirectAdmin: la integración nativa con Let's Encrypt hace que todo sea automático.
Al hacer clic en "Let's Encrypt", se abrirá un formulario. Aquí es donde debes prestar atención. El panel te pedirá que selecciones el dominio para el cual quieres generar el certificado. En el menú desplegable, elige tu dominio principal (por ejemplo, tutienda.com).
Verás una lista de opciones o casillas. Lo más importante es que marques la casilla que dice "www" o "Include www". Esto generará un certificado que cubre tanto tutienda.com como www.tutienda.com. Es crucial para evitar errores de "mixed content" y para que tus redirecciones funcionen correctamente.
También es posible que veas una opción para "Wildcard" (comodín), que cubre todos los subdominios. Para la mayoría de las tiendas PrestaShop, no es necesario y puede ser más complejo de configurar. Te recomiendo empezar con el certificado estándar para tu dominio y su variante "www".
[WARNING]: No marques la opción de "Wildcard" a menos que sepas exactamente lo que estás haciendo. A veces requiere configuración adicional de DNS (registros TXT) que puede complicar el proceso. El certificado estándar es más que suficiente para una tienda online normal.
Finalmente, haz clic en el botón "Issue" o "Solicitar". DirectAdmin se comunicará con los servidores de Let's Encrypt, verificará que eres el dueño del dominio (mediante un archivo temporal o registro DNS) y, en cuestión de segundos (a veces hasta un minuto), te dará un mensaje de éxito. ¡Felicidades! Ya tienes el certificado SSL instalado a nivel de servidor.
Paso 3: Forzar la Redirección a HTTPS en DirectAdmin
Tener el certificado instalado es el primer paso, pero no es suficiente. Ahora mismo, tu web puede ser accesible tanto por http:// como por https://. Para una correcta configuración y SEO, debes forzar que todo el tráfico vaya a la versión segura (HTTPS). Esto se hace mediante una redirección 301.
DirectAdmin nos facilita esto. Vuelve al listado de iconos principal y busca "Domain Setup" (Configuración de Dominio) o "Domain Manager". Haz clic en tu dominio. Dentro de la configuración del dominio, busca la sección que dice "Force SSL" o "Force HTTPS". Actívala.
Esta opción crea automáticamente una regla de redirección en el servidor web (Apache o LiteSpeed) para que cualquier visita a http://tutienda.com sea redirigida instantáneamente a https://tutienda.com.
[INFO]: Esta redirección a nivel de servidor es la más eficiente y rápida. Evita hacerlo solo con archivos .htaccess si tu panel ya te da la opción, ya que el panel lo hace de forma más limpia y sin riesgo de errores de sintaxis.
Paso 4: Configurar PrestaShop para Usar HTTPS (La Parte Crucial)
Ahora viene la parte que más dolores de cabeza causa si no se hace bien. PrestaShop guarda las URLs de tu tienda en su base de datos. Si no actualizas esta información, la tienda seguirá intentando cargar recursos (imágenes, CSS, JavaScript) a través de http://, lo que se conoce como "Mixed Content". Esto hará que el candado de seguridad aparezca roto y que los navegadores bloqueen elementos, arruinando la experiencia de usuario.
Para solucionarlo, accede al panel de administración de tu PrestaShop. Normalmente es tutienda.com/admin1234 (o la ruta que hayas configurado). Ve al menú "Parámetros avanzados" y luego a "Rendimiento". No, espera, no es ahí. Ve a "Parámetros Generales" o "Configuración general".
Dentro de esta sección, busca la pestaña o submenú que dice "Mantenimiento" o "General". Verás dos campos cruciales:
- URL de la tienda: Debe empezar con
https://. - URL de la tienda SSL: Debe ser exactamente la misma, empezando con
https://.
Es decir, si tu dominio es tutienda.com, ambos campos deben decir https://tutienda.com. Es fundamental que no haya barras inclinadas al final (a menos que PrestaShop lo indique) y que no uses www en un campo y sin www en el otro. La coherencia es clave.
Guarda los cambios. PrestaShop actualizará las URLs en la base de datos. A partir de este momento, la tienda cargará todos sus recursos a través de HTTPS.
[WARNING]: Si después de este paso ves imágenes rotas o el candado sigue roto, es probable que tengas URLs antiguas almacenadas en caché o en tablas específicas. No te preocupes, lo solucionaremos en los siguientes pasos.
Paso 5: Limpiar la Caché y Actualizar URLs Antiguas en la Base de Datos
A veces, PrestaShop no actualiza todas las referencias a las URLs antiguas. Esto es especialmente común si tu tienda lleva tiempo funcionando. Para solucionarlo, tienes dos opciones: una manual (usando phpMyAdmin) y otra automática (usando un módulo).
Opción A: Usar phpMyAdmin (Método manual pero fiable)
- Ve a tu panel de DirectAdmin y busca el icono de "MySQL Management" (Gestión de MySQL).
- Haz clic en "phpMyAdmin".
- En el panel izquierdo, selecciona la base de datos de tu PrestaShop.
- Arriba, haz clic en la pestaña "SQL".
- En el cuadro de texto, pega la siguiente consulta SQL. IMPORTANTE: Reemplaza
tutienda.compor tu dominio real y asegúrate de que el prefijo de las tablas seaps_(si lo cambiaste durante la instalación, ajústalo).
UPDATE ps_shop_url SET domain='tutienda.com', domain_ssl='tutienda.com', physical_uri='', request_uri='' WHERE main=1;
Esta consulta actualiza la tabla principal de URLs de la tienda. Ejecútala y listo.
Opción B: Usar un Módulo (Método fácil para novatos)
En el mercado de PrestaShop hay módulos gratuitos y de pago que se encargan de buscar y reemplazar URLs en toda la base de datos. Busca "Cambiar URL" o "Replace URL" en el marketplace de PrestaShop. Instálalo, configúralo con tu URL antigua (http://tutienda.com) y la nueva (https://tutienda.com), y el módulo hará el trabajo sucio por ti.
[TIP]: Antes de hacer cambios masivos en la base de datos, siempre es recomendable hacer una copia de seguridad. En DirectAdmin, puedes hacerlo fácilmente desde la sección "Backup" o "Copias de seguridad". Esto te salvará si algo sale mal.
Paso 6: Activar la Opción "Activar SSL" en PrestaShop (Si Aún No Está)
En versiones anteriores de PrestaShop, había una casilla explícita que decía "Activar SSL" en los parámetros generales. En versiones más recientes (1.7 y 8.x), esta opción está algo más escondida o se activa automáticamente al cambiar las URLs.
Sin embargo, para asegurarte, ve a "Parámetros Avanzados" -> "Rendimiento". Este menú no tiene que ver con la velocidad, sino con características avanzadas. Busca la opción "Activar SSL". Si ves esta opción, asegúrate de que esté en "Sí". También puedes activar la casilla "Activar SSL en todas las páginas" para forzar HTTPS en todo el sitio, incluido el panel de administración.
[INFO]: Forzar SSL en el panel de administración es una excelente práctica de seguridad. Añade una capa extra de protección contra la interceptación de tus credenciales de acceso.
Paso 7: Verificar la Configuración y Solucionar Problemas Comunes
Ya has hecho la mayor parte del trabajo. Ahora es el momento de la verificación. Abre una ventana de incógnito en tu navegador y visita https://tutienda.com. Deberías ver el candado verde (o un candado negro, dependiendo del navegador) en la barra de direcciones.
Haz clic en el candado y selecciona "La conexión es segura" o "Certificado". Verás que el certificado es emitido por "R10" o "E5" de Let's Encrypt y que tiene una validez de 90 días. DirectAdmin se encargará de renovarlo automáticamente, así que no tendrás que preocuparte por eso.
Ahora, navega por tu tienda como lo haría un cliente. Revisa varias páginas (producto, carrito, checkout, etc.) y asegúrate de que no aparezcan mensajes de "contenido mixto". Para una verificación más técnica, puedes usar la herramienta gratuita Why No Padlock (por qué no hay candado).
¿Qué hago si el candado aparece roto?
Esto casi siempre es por contenido mixto. Para encontrarlo:
- Haz clic derecho en la página y selecciona "Inspeccionar" o "Ver código fuente".
- Ve a la pestaña "Consola" o "Red".
- Busca errores que digan "Mixed Content" o "Blocked loading mixed active content". Te dirán exactamente qué recurso (URL) se está cargando por HTTP.
La solución es buscar esa URL en tu base de datos y reemplazarla por HTTPS, o buscar el archivo en tu servidor FTP y asegurarte de que la referencia sea relativa (sin http://).
[WARNING]: Si cambiaste las URLs en PrestaShop pero el problema persiste, revisa que tu redirección en DirectAdmin (Paso 3) esté funcionando. A veces, la caché del navegador guarda la versión antigua. Prueba a limpiar la caché de tu navegador o usa la ventana de incógnito.
Preguntas Frecuentes (FAQ) sobre SSL, Let's Encrypt y PrestaShop
Aquí te resuelvo las dudas más comunes que me suelen llegar al soporte técnico:
1. ¿Cada cuánto tiempo se renueva el certificado de Let's Encrypt?
Los certificados de Let's Encrypt tienen una validez de 90 días. La buena noticia es que DirectAdmin incluye un cron job automático que se encarga de la renovación unos 30 días antes de que caduque. No tienes que hacer absolutamente nada. Solo asegúrate de no desactivar el cron job en tu panel.
2. ¿Puedo usar Let's Encrypt en varios subdominios (tienda.tudominio.com)?
Sí, por supuesto. En DirectAdmin, puedes generar un certificado Let's Encrypt para cada subdominio que tengas. Solo tienes que seleccionar el subdominio en el menú desplegable del Paso 2 y repetir el proceso. Si tu subdominio apunta a una instalación diferente de PrestaShop, deberás repetir los pasos 4 a 6 en esa instalación.
3. Mi web carga en HTTPS pero la URL canónica de Google sigue siendo HTTP. ¿Qué hago?
Esto puede ser por varias razones. Primero, asegúrate de que la redirección 301 del Paso 3 esté activa. Segundo, ve a Google Search Console y solicita un cambio de dirección (cambio de dominio) o simplemente verifica el nuevo sitio con HTTPS. Google acabará rastreando el nuevo protocolo. También puedes usar la herramienta de "Inspección de URLs" en Search Console para forzar el rastreo de la versión HTTPS.
4. ¿Perderé posiciones en SEO si cambio de HTTP a HTTPS?
No, al contrario. HTTPS es una señal de clasificación positiva para Google. Es muy probable que, a largo plazo, tu posicionamiento mejore ligeramente. A corto plazo, puede haber una pequeña fluctuación (una mini caída) mientras Google rastrea y procesa el cambio, pero es completamente normal y se recupera en pocos días. Asegúrate de mantener tus redirecciones 301 configuradas correctamente para no perder la autoridad de las URLs antiguas.
5. ¿Qué es el "mixed content" y por qué es tan grave?
El "mixed content" ocurre cuando tu página se carga a través de HTTPS, pero dentro de ella hay recursos (imágenes, scripts, hojas de estilo) que se cargan a través de HTTP. Los navegadores modernos bloquean estos recursos "activos" (JavaScript) por seguridad, lo que puede romper la funcionalidad de tu tienda (por ejemplo, el carrito de compras). Además, el candado de seguridad desaparece, lo que ahuyenta a los clientes. Es fundamental que toda tu tienda (incluidos los enlaces en el texto) utilice HTTPS.
**6. Mi hosting usa Syspanel,
