Sitios web

Cómo solucionar advertencias de contenido mixto después de habilitar HTTPS

When SSL is active but the browser padlock is missing, broken or showing a warning, the cause is almost always mixed content: the page itself is encrypted but something on it is still being fetched…

Corrección de Advertencias de Contenido Mixto Después de Habilitar HTTPS

Cuando SSL está activo pero el candado del navegador falta, está roto o muestra una advertencia, la causa es casi siempre contenido mixto: la página en sí está cifrada pero algo en ella sigue siendo recuperado por HTTP plano. Esta guía explica por qué sucede, cómo encontrar cada recurso ofensivo y cómo solucionarlo correctamente en lugar de ocultarlo.

Qué es el Contenido Mixto

Un navegador trata una página como segura solo si la página y todo lo que carga llegaron por HTTPS. Si una página HTTPS obtiene una imagen, script, hoja de estilos, fuente o iframe de una dirección http://, el navegador lo marca.

Los navegadores dividen esto en dos categorías y se comportan muy diferente:

  • Contenido mixto activo: scripts, hojas de estilos, iframes y XHR. Los navegadores bloquean estos directamente. Los diseños colapsan, los controles deslizantes se detienen, los formularios dejan de enviar. Este es el tipo destructivo.
  • Contenido mixto pasivo: imágenes, audio y vídeo. Normalmente siguen cargándose, pero el candado se degrada o se elimina.

Un sitio puede verse completamente bien y seguir perdiendo su candado, o verse roto sin ningún error evidente en la página misma.

Por Qué Sucede Después de Habilitar SSL

Activar SSL cambia cómo se sirve tu sitio. No cambia lo que está almacenado dentro de él.

WordPress escribe URLs absolutas en la base de datos, por lo que un sitio que funcionó en HTTP durante cualquier período de tiempo tiene direcciones http:// guardadas en:

  • Contenido de entradas y páginas, incluyendo cada imagen insertada a través del editor.
  • Registros de adjuntos multimedia.
  • Configuración del personalizador de temas y opciones de temas.
  • Contenido de widgets y configuración de bloques.
  • Configuración de plugins, particularmente constructores de páginas y plugins de controles deslizantes.
  • Las opciones siteurl e home.

Nada de eso se actualiza automáticamente. Habilitar SSL y luego preguntarse por qué el candado está roto es una de las preguntas de soporte más comunes, y esta es la razón.

Paso 1: Forzar HTTPS en el Servidor

Antes de tocar la base de datos, asegúrate de que cada visitante llegue a HTTPS en primer lugar.

  1. Inicia sesión en KPanel y haz clic en Websites en la barra lateral izquierda.
  2. Haz clic en tu sitio.
  3. Abre Settings.
  4. En Behavior, activa Force HTTPS.
  5. Haz clic en Save Changes.

Configuración de Force HTTPS en un sitio en KPanel

Ahora cada solicitud HTTP se redirige a HTTPS en el servidor, antes de que tu sitio se ejecute.

Force HTTPS gestiona las solicitudes entrantes. No reescribe las URLs ya almacenadas en tu base de datos, por lo que por sí solo no borrará una advertencia de contenido mixto causada por una imagen http:// codificada. Necesitas tanto esto como el Paso 2.

Si SSL aún no está activo o el certificado se ve mal, comienza con SSL Certificates.

Paso 2: Reescribir las URLs Almacenadas

Esta es la solución que realmente resuelve el contenido mixto.

  1. Abre el sitio, luego la pestaña WordPress, luego la sección Quick Actions.
  2. Busca la tarjeta Search & Replace y haz clic en Configure.
  3. En Find (old value) ingresa http://yourdomain.co.nz.
  4. En Replace with ingresa https://yourdomain.co.nz.
  5. Deja Dry run (preview only, no changes) marcado y haz clic en Preview.
  6. Revisa el recuento y el desglose por tabla.
  7. Desmarca Dry run, haz clic en Run y confirma.

Se realiza automáticamente una copia de seguridad completa antes del reemplazo, y se cubren todas las tablas, incluidas las creadas por plugins. La configuración de plugins y temas serializados se maneja correctamente.

No hagas esto con una consulta SQL en phpMyAdmin. WordPress almacena la configuración de plugins y temas como cadenas serializadas que registran la longitud de cada valor, por lo que un REPLACE() sin procesar los rompe y la configuración se reinicia silenciosamente a vacío. No hay reparación excepto restaurar una copia de seguridad. La explicación completa está en Running a Search and Replace.

Si tu plan incluye la consola, el comando equivalente es:

search-replace 'http://yourdomain.co.nz' 'https://yourdomain.co.nz' --all-tables --dry-run

Suelta --dry-run para aplicarlo y realiza una copia de seguridad tú mismo primero: la consola no lo hace.

Paso 3: Vaciar Todo el Caché

Una copia en caché de una página seguirá sirviendo las antiguas URLs HTTP mucho después de que la base de datos esté arreglada, por lo que la gente a menudo piensa que el reemplazo no funcionó.

  1. WordPress, luego Quick Actions, luego Flush Cache.
  2. WordPress, luego Caching, luego Purge cache, si la caché de página completa está activada.
  3. Performance, luego Kapsule CDN, luego Purge, si la CDN está activada. Ver Purging the CDN Cache.
  4. Cualquier plugin de caché, desde su propia pantalla de configuración.
  5. Tu propio navegador. Prueba en una ventana privada para no ser engañado por tu propio caché.

Paso 4: Encuentra Lo Que Queda

La mayoría de los sitios están limpios después del Paso 2. Cuando una advertencia persiste, encuentra el recurso exacto en lugar de adivinar.

Consola del navegador. Abre las herramientas del desarrollador con F12, ve a la pestaña Console y recarga. El contenido mixto aparece como una advertencia explícita que nombra la URL completa del recurso ofensivo. Esa URL te dice qué plugin o tema es responsable.

Pestaña Network. Filtra por http:// para listar cada solicitud insegura que hizo la página.

Fuente de la página. Carga la página, ve la fuente y busca http://. Ignora cualquier cosa dentro de atributos xmlns y declaraciones de esquema: esos son identificadores, no solicitudes.

Supervivientes comunes y qué hacer con cada uno:

Lo que encuentrasSolución
Una imagen o logo en una configuración del personalizador de temasVuelve a subirla o seleccionarla en el personalizador
Un módulo de constructor de páginas con una URL de imagen http:// escritaEdita ese módulo y corrige la URL
Tabla de configuración propia de un plugin de controles deslizantesVuelve a guardar el control deslizante o ejecuta la búsqueda y reemplazo con --all-tables
Una fuente o script de un dominio de tercerosComprueba si el proveedor ofrece HTTPS. La mayoría lo hacen ahora. Cambia la URL
Un píxel de seguimiento o incrustación de un proveedor antiguoSi el proveedor no tiene HTTPS, elimínalo. Es una dependencia rota, no un problema de Kapsule
http:// codificado en un archivo de plantilla de temaEdita la plantilla o, mejor aún, usa https o una referencia relativa al protocolo

Si exactamente una página se ve afectada y el resto del sitio está limpio, el culpable es el contenido en esa página, no una configuración de sitio amplio. Abrela en el editor y busca los medios que incrusta.

Confirmación de que Está Arreglado

  1. Carga el sitio en una ventana privada.
  2. El candado debe ser sólido, sin triángulo de advertencia sin indicación cruzada.
  3. Haz clic en el candado. El navegador reporta la conexión como segura sin aviso de contenido mixto.
  4. Abre la consola y recarga una vez más. Cero advertencias de contenido mixto.
  5. Revisa una página profunda, no solo la página de inicio: una página interior, una entrada de blog con imágenes y el checkout en una tienda.

Evitar Que Regrese

  • Mantén Force HTTPS activado. Es una configuración de una línea que elimina una clase completa de problemas.
  • Nunca escribas una URL completa http:// en contenido. Usa la biblioteca multimedia, que ahora almacena direcciones HTTPS.
  • Revisa la configuración del plugin después de instalar cualquier cosa que pida una URL.
  • Vigila una advertencia que regrese después de una actualización de plugin. Algunos plugins reinician sus propias URLs almacenadas.
  • Vuelve a ejecutar la búsqueda y reemplazo después de cualquier migración, ya que una base de datos importada trae las URLs del host antiguo: Migrating a Website From cPanel.

Solución de Problemas

El candado está bien para mí, roto para un colega. Página en caché. Pídeles que recarguen en una ventana privada.

El sitio se rompió completamente después del reemplazo. Restaura la copia de seguridad anterior a la ejecución automática: Restoring From a Backup.

La consola muestra una advertencia de contenido mixto en un dominio que no es mío. Un recurso de terceros. No puedes arreglar su servidor: o soportan HTTPS y cambias la URL, o eliminas el recurso.

Todo es HTTPS pero el sitio no se carga en absoluto. Eso no es contenido mixto. Comienza con Website Not Loading y verifica el certificado en SSL Certificates.

Si has trabajado en todo esto y la advertencia persiste, envía un correo a support@kapsulehost.com con la URL afectada y el texto exacto de la advertencia de la consola del navegador.

¿Aún necesitas ayuda?

Envíanos un correo electrónico a support@kapsulehost.com o abre un chat en KPanel.

Abrir KPanel
Cómo solucionar advertencias de contenido mixto después de habilitar HTTPS