Migrar un sitio Joomla a HTTPS requiere tres pasos: instalar un certificado SSL en su servidor, activar Force HTTPS en la Configuración Global de Joomla, y añadir una redirección 301 para que los antiguos enlaces HTTP la sigan. El tercer paso tiene una particularidad propia de Joomla que confunde a la mayoría de las personas, y se explica más abajo antes del código.
Respuesta rápida: instale el certificado a través de su panel de hosting, luego vaya a System > Global Configuration > Server y ajuste Force HTTPS a Entire Site. Para añadir una redirección a nivel de servidor, primero renombre htaccess.txt en la raíz de su Joomla a .htaccess, porque Apache ignora el archivo con su nombre original.
SSL (abreviatura de Secure Sockets Layer, aunque todo certificado emitido hoy en día usa TLS) es lo que elimina la etiqueta «No seguro» de su barra de direcciones. Si desea el contexto primero, lea qué es un certificado SSL. Estos pasos se aplican a Joomla 5 y Joomla 6.
Qué método se adapta a su configuración de Joomla
| Su configuración | Cómo obtener el certificado | Tiempo aproximado |
|---|---|---|
| Host gestionado o cPanel con AutoSSL | Emita el certificado gratuito en el panel, luego active Force HTTPS | 10 minutos |
| Un host sin herramienta SSL, o su propio VPS | Certbot para un certificado Let’s Encrypt, luego active Force HTTPS | 20 minutos |
| Certificado de pago (OV, EV o wildcard) | Genere un CSR, instale manualmente, luego active Force HTTPS | 30 minutos más la validación |
| Cloudflare delante de su sitio | Certificado en el origen, Cloudflare configurado en Full (strict), y Behind Load Balancer activado | 15 minutos |
Haga una copia de seguridad antes de empezar. Akeeba Backup es la opción habitual en Joomla. El modo de fallo de este procedimiento es perder el acceso a su propio administrador, y una copia de seguridad más el paso de recuperación en la sección de configuration.php más abajo le sacarán de ese apuro.
Qué certificado SSL debe usar un sitio Joomla
Comience con la opción gratuita. La mayoría de los hosts emiten certificados Let’s Encrypt gratuitos de forma automática, y el cifrado que proporciona un certificado gratuito es idéntico al de uno de pago. Lo que diferencia a un certificado SSL de Joomla de otro es lo que la autoridad certificadora verificó antes de emitirlo, y lo que obtiene cuando algo sale mal.
| Tipo | Qué verifica la CA | Emitido en | Se adapta a |
|---|---|---|---|
| Validación de Dominio (DV) | Que usted controla el dominio | Minutos | Blogs, sitios corporativos sencillos, la mayoría de instalaciones Joomla |
| Validación de Organización (OV) | El dominio más su organización registrada | 1 a 3 días hábiles | Sitios empresariales, áreas de miembros, portales de clientes |
| Validación Extendida (EV) | Una comprobación legal y operativa completa de la empresa | 1 a 3 días hábiles | Tiendas, finanzas, cualquier lugar donde la identidad importe |
Si su instalación de Joomla utiliza subdominios, un certificado wildcard los cubre todos con un único certificado. ¿No está seguro de qué tipo le corresponde? El SSL Wizard lo determina en unas pocas preguntas.
Un certificado gratuito deja de ser la respuesta adecuada en cuatro casos: acepta pagos y desea una garantía respaldando el certificado, necesita que sus datos de organización verificados figuren en él en lugar de solo el control del dominio, gestiona subdominios y la emisión de wildcard gratuito resulta incómoda en su host, o su host no automatiza la renovación. Ese último punto importa más de lo que la gente espera, y la siguiente sección explica por qué.
Cómo poner el certificado en su servidor
Joomla no instala certificados. Este paso ocurre en el servidor, antes de tocar Joomla en absoluto.
Desde su panel de hosting
Busque SSL/TLS, Let’s Encrypt o AutoSSL en su panel de control. En cPanel se encuentra bajo Security. Emita el certificado tanto para el dominio raíz como para la versión con www, o cualquiera que omita generará una advertencia de discrepancia de nombre.
Los certificados Let’s Encrypt duran 90 días y están pensados para renovarse automáticamente unos 30 días antes de su vencimiento. Cuando esa automatización falla, normalmente después de un traslado de dominio o un cambio de DNS, el sitio sigue funcionando durante semanas y luego se vuelve inseguro sin previo aviso. Confirme que la renovación automática está activada, y después de la primera fecha de renovación esperada, verifique el certificado con el SSL Checker. Si la fecha de vencimiento avanzó, la renovación está funcionando.
En un VPS sin panel
Utilice Certbot, el cliente de Let’s Encrypt. Emite el certificado desde la línea de comandos, configura Apache o Nginx, e instala su propio temporizador de renovación.
Instalar un certificado de pago manualmente
- Genere un CSR. Joomla no tiene función propia para generar CSR, así que use el generador de CSR, o las guías de CSR para su servidor.
- Envíelo a la autoridad certificadora y complete la validación.
- Instale el certificado, la clave privada y los certificados intermedios. En cPanel esto se hace en SSL/TLS > Manage SSL sites, tratado en la guía de instalación en cPanel. Otras plataformas están en las guías de instalación SSL.
- Verifique antes de continuar. Ejecute el SSL Checker, y consulte cómo comprobar que el certificado está instalado correctamente si algo parece incorrecto.
No omita los certificados intermedios. Si instala el certificado principal sin la cadena, la mayoría de los navegadores de escritorio seguirán mostrando el candado, porque almacenan en caché los intermedios que ya han visto en otro lugar. Los navegadores móviles, las pasarelas de pago y los clientes API fallarán. Si el problema que persigue es de cadena, consulte certificados intermedios caducados.
Cómo forzar HTTPS en Joomla
Con un certificado funcionando en el servidor, indique a Joomla que lo use. Inicie sesión en el administrador y vaya a System > Global Configuration > Server. En el bloque Server en la parte superior de esa pestaña encontrará Force HTTPS, y tiene tres estados en lugar de un simple activado y desactivado.
- None. Joomla no hace nada. Las páginas siguen siendo accesibles tanto por HTTP como por HTTPS.
- Administrator Only. El administrador, incluida su pantalla de inicio de sesión, se fuerza a HTTPS, y el sitio público se deja intacto. Este es el estado a usar mientras un certificado todavía se está validando, o en un sitio que está migrando por etapas. Su propia contraseña deja de viajar en claro de inmediato, sin afectar nada de lo que ven los visitantes.
- Entire Site. Todo se fuerza a HTTPS. Esto es lo que desea una vez confirmado que el certificado funciona.
Seleccione Entire Site y guarde. Verifique que el certificado resuelve correctamente en su dominio antes de hacer esto. Si Force HTTPS está activado mientras el certificado está roto o ausente, el administrador también quedará inaccesible, y necesitará el paso de recuperación descrito más abajo.
Estas instrucciones están dirigidas a Joomla 5 y Joomla 6, las dos ramas soportadas. Joomla 6.0 se lanzó en octubre de 2025, y Joomla 5 deja de recibir actualizaciones funcionales el 13 de octubre de 2026, tras lo cual solo recibirá parches de seguridad hasta octubre de 2027. Si todavía usa Joomla 3, llegó al final de su vida útil en agosto de 2023 y el ajuste se encuentra en un lugar diferente, así que actualice antes de seguir cualquier cosa aquí.
Configurar Force HTTPS desde configuration.php
Cada ajuste de la Configuración Global se almacena en configuration.php en la raíz de su Joomla. Editar ese archivo por FTP es la forma de volver a entrar cuando Force HTTPS le ha bloqueado el acceso al administrador, que es exactamente la situación en la que el desplegable ya no es accesible.
La línea relevante es:
public $force_ssl = 2;
Los valores corresponden a los tres estados: 0 es None, 1 es Administrator, y 2 es tanto el sitio como el administrador. Volver a poner 0 por FTP revierte un bloqueo en segundos.
Encontrará una segunda línea cerca:
public $live_site = '';
Muchos tutoriales de HTTPS en Joomla le indican que complete esto con su dirección https, y muchos de ellos lo escriben como var $live_site. Esa sintaxis pertenece a Joomla 1.5, que usaba la sintaxis de clases de PHP 4 y se retiró en 2012. El Joomla actual usa public, y el ajuste está documentado como opcional. Déjelo vacío a menos que tenga una razón específica para fijar la URL del sitio. No es esto lo que activa HTTPS, y configurarlo incorrectamente es una forma habitual de romper un sitio Joomla. $force_ssl es el ajuste que realiza el trabajo.
Añadir una redirección 301 en .htaccess
Force HTTPS gestiona las solicitudes que llegan a Joomla. Una redirección a nivel de servidor es más rápida, porque ocurre antes de que se ejecute PHP, y sigue funcionando aunque Joomla esté fuera de línea en algún momento. En Apache eso significa .htaccess, y aquí está la parte que casi todas las guías se saltan.
Primero, renombre htaccess.txt
Joomla incluye el archivo como htaccess.txt, no como .htaccess. Apache lo ignora con ese nombre. Si pega reglas de redirección en un archivo llamado htaccess.txt, o en un archivo .htaccess que todavía no existe, no ocurre nada y no hay ningún error que le indique por qué.
- Renombre htaccess.txt a .htaccess en la raíz de su Joomla. No edite htaccess.txt dejándolo con ese nombre: una actualización de Joomla sobrescribe ese archivo y sus cambios se pierden con él.
- Haga el renombrado antes de activar Use URL Rewriting en la Configuración Global. Si activa la reescritura primero, Joomla comienza a generar URLs sin index.php que Apache no sabe cómo enrutar, así que todas las páginas excepto la de inicio devuelven un 404.
Luego añada la redirección
Añada estas líneas cerca del inicio de .htaccess, por encima del propio bloque de reescritura de Joomla:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Dos detalles determinan si esto funciona. La condición debe ser off, es decir, «redirige cuando la solicitud aún no es segura». Escrita como on, algo que aparece en una sorprendente cantidad de fragmentos publicados, la regla solo se activa en solicitudes que ya son HTTPS y las envía de nuevo a HTTPS, lo cual es un bucle. Y la marca R=301 es lo que la convierte en una redirección permanente. Sin ella, o con un simple R, obtiene un 302 temporal o una reescritura interna que nunca le indica a los motores de búsqueda que algo se movió.
En Nginx
Nginx no tiene .htaccess y no lee las reglas de reescritura de Apache. Edite el bloque de servidor en su lugar:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Pruebe con nginx -t, luego recargue con systemctl reload nginx.
Solucionar lo que deja el cambio
Vacíe la caché de Joomla. Esto es lo primero que hay que hacer y lo que más se olvida. Joomla seguirá sirviendo alegremente páginas en caché llenas de marcado HTTP, lo que hace que una migración terminada parezca rota. Vaya a System > Clear Cache, en el panel de Maintenance, y purgue también su CDN si utiliza uno.
Corrija el contenido mixto. Una página servida por HTTPS que aún carga una imagen, script u hoja de estilos por HTTP es contenido mixto. Los navegadores tratan las dos categorías de forma distinta: los medios normalmente son actualizables, así que el navegador solicita silenciosamente la versión HTTPS en su lugar, mientras que los scripts y hojas de estilos son bloqueables y simplemente se rechazan, razón por la cual una página afectada puede llegar completamente sin estilo. En Joomla, las fuentes habituales son URLs codificadas manualmente en sobrescrituras de plantillas, ajustes de módulos y extensiones de terceros. La consola del navegador nombra el recurso problemático. Nuestra guía sobre cómo corregir el contenido mixto cubre el diagnóstico en detalle.
Actualice su mapa del sitio y robots.txt. Regenere el mapa del sitio XML para que enumere URLs https, y compruebe que robots.txt no haga referencia a la versión http de nada.
Solución de problemas SSL de Joomla
Demasiadas redirecciones tras activar Force HTTPS
Este es el fallo más común de HTTPS en Joomla, y ocurre porque dos consejos habituales son incompatibles. Si un proxy como Cloudflare termina TLS y luego se comunica con su servidor por HTTP simple, Joomla nunca ve una solicitud HTTPS. Force HTTPS concluye que el visitante llegó de forma insegura y lo redirige a HTTPS, el proxy responde a esa solicitud de nuevo por HTTP, y el bucle continúa hasta que el navegador se rinde con ERR_TOO_MANY_REDIRECTS.
Hay dos soluciones y por lo general se necesitan ambas:
- Configure su modo de cifrado SSL/TLS de Cloudflare en Full (strict) y mantenga un certificado válido en el servidor de origen. El modo Flexible, que varios tutoriales populares de Joomla siguen recomendando como la opción gratuita rápida, es lo que crea el bucle.
- Cambie Behind Load Balancer a Yes. Está en la misma pestaña System > Global Configuration > Server, más abajo en el bloque Proxy. Esto indica a Joomla que confíe en el encabezado de protocolo reenviado por el proxy en lugar de buscar una conexión HTTPS directa.
Una advertencia sobre ese segundo ajuste: solo active Behind Load Balancer si su sitio realmente está detrás de un proxy, balanceador de carga o CDN. En un host ordinario, confiar en un encabezado reenviado que cualquiera puede enviar debilita la seguridad sin ningún beneficio.
Otros problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
| Bloqueado fuera del administrador | Force HTTPS activado mientras el certificado falta o está roto | Ajuste $force_ssl a 0 en configuration.php por FTP, arregle el certificado, luego reactive |
| Las reglas de redirección no hacen nada | Se escribieron en htaccess.txt, o en un archivo .htaccess que no existe | Renombre htaccess.txt a .htaccess |
| Todas las páginas excepto la de inicio devuelven 404 | URL Rewriting se activó antes del renombrado | Renombre el archivo, o desactive la reescritura hasta hacerlo |
| Falta el candado solo en algunas páginas | Contenido mixto en esas páginas | Encuentre el recurso HTTP en la consola del navegador |
| El sitio funcionaba bien, se volvió inseguro semanas después | Un certificado Let’s Encrypt caducó porque la renovación falló | Reemita el certificado, luego confirme la renovación automática en su panel |
| Funciona en un navegador, falla en una app o pasarela | Cadena de certificados incompleta | Instale el paquete completo de la CA, verifique de nuevo con el SSL Checker |
| Discrepancia de nombre en www o el dominio raíz | El certificado cubre solo uno de los dos nombres | Reemita cubriendo ambos. Vea nombre común inválido |
Si el certificado está instalado y el sitio sigue reportándose como inseguro, las guías de errores SSL tratan códigos de error específicos del navegador.
Después del cambio: lista de verificación SEO
- Añada la propiedad HTTPS en Google Search Console. Una propiedad HTTP no informa sobre URLs HTTPS. Añada la nueva, o use una propiedad de Dominio, que cubre ambas.
- Vuelva a enviar el mapa del sitio con URLs https.
- Compruebe las etiquetas canónicas apuntan a https en su extensión SEF o SEO.
- Actualice analíticas y cualquier servicio de terceros que almacene la URL de su sitio.
Espere algún movimiento. Google trata el cambio de HTTP a HTTPS como un traslado de sitio con cambios de URL, así que las impresiones aparecerán divididas entre sus propiedades HTTP y HTTPS durante un tiempo, y las clasificaciones a menudo fluctúan durante unas semanas antes de estabilizarse. Mientras cada página resuelva correctamente y las redirecciones 301 estén en su lugar, no hay nada que corregir.
Una vez que HTTPS haya estado estable durante un tiempo, considere HSTS, que indica a los navegadores que rechacen directamente el HTTP simple para su dominio. Deje la directiva preload desactivada al principio, porque es lenta de revertir y hará inaccesible cualquier subdominio que todavía esté en HTTP.
Preguntas Frecuentes
Instale primero un certificado SSL en su servidor, a través de su panel de hosting o manualmente. Luego inicie sesión en el administrador de Joomla, abra System > Global Configuration > Server, y ajuste Force HTTPS a Entire Site. Joomla en sí no instala certificados. Solo hace cumplir el que su servidor ya tiene.
En la pestaña System > Global Configuration > Server, en el bloque Server de la parte superior. Ofrece tres estados: None, Administrator Only, y Entire Site. Administrator Only resulta útil mientras un certificado todavía se está validando, porque protege su inicio de sesión sin cambiar lo que ven los visitantes.
Casi siempre porque un proxy como Cloudflare está terminando TLS y pasando HTTP simple a su servidor, así que Joomla piensa que cada solicitud llegó de forma insegura y la redirige de nuevo. Configure su modo de cifrado de Cloudflare en Full (strict) en lugar de Flexible, y cambie Behind Load Balancer a Yes, en el bloque Proxy de la Configuración Global. Solo active ese ajuste si realmente está detrás de un proxy.
No. El desplegable de la Configuración Global escribe el mismo valor que contiene el archivo. Editar configuration.php importa en una situación: cuando Force HTTPS le ha bloqueado el acceso al administrador, puede volver a ajustar $force_ssl a 0 por FTP. Ignore los tutoriales antiguos que le indican rellenar var $live_site. Esa sintaxis se retiró con Joomla 1.5 en 2012, y el ajuste es opcional en cualquier caso.
Compruebe primero el nombre del archivo. Joomla incluye el archivo como htaccess.txt y Apache lo ignora con ese nombre, así que las reglas pegadas en él nunca se ejecutan. Renómbrelo a .htaccess. Si el archivo es correcto, compruebe la condición: debe decir RewriteCond %{HTTPS} off. Escrita como «on» solo coincide con solicitudes que ya son seguras, lo cual produce un bucle de redirección en lugar de una redirección.
Joomla 5 y Joomla 6, las dos ramas actualmente soportadas. Joomla 6.0 se lanzó en octubre de 2025. Joomla 5 recibe actualizaciones funcionales hasta el 13 de octubre de 2026 y parches de seguridad hasta octubre de 2027. Joomla 3 llegó al final de su vida útil en agosto de 2023 y organiza su configuración de forma diferente, así que actualice antes de seguir estos pasos.
¿Está migrando una plataforma diferente, o quiere el procedimiento general? Consulte nuestra guía sobre cómo cambiar un sitio de HTTP a HTTPS.
Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.
Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10

