Que es el contenido mixto o Mixed Content
El contenido mixto ocurre cuando una pagina web que se sirve a traves de HTTPS incluye recursos (imagenes, scripts, hojas de estilo, iframes o fuentes) que se cargan desde URLs con HTTP no cifrado. Los navegadores modernos bloquean o advierten sobre este tipo de contenido porque carga recursos no seguros en una conexion que se supone segura, comprometiendo la proteccion que ofrece el certificado SSL.
Existen dos tipos de contenido mixto con diferentes niveles de impacto:
| Tipo | Recursos afectados | Comportamiento del navegador |
|---|---|---|
| Mixed Content Activo | Scripts JS, CSS, iframes, XMLHttpRequest | Bloqueado automaticamente (riesgo alto) |
| Mixed Content Pasivo | Imagenes, audio, video | Carga pero muestra advertencia (riesgo medio) |
Como identificar el contenido mixto
Cuando existe contenido mixto, el icono del candado en la barra del navegador muestra una advertencia. Para identificar exactamente que recursos estan causando el problema:
- Abrir las Herramientas de Desarrollo del navegador (F12) y revisar la consola. Los errores de contenido mixto se muestran claramente con la URL del recurso problematico.
- Usar la herramienta Why No Padlock (whynopadlock.com) ingresando la URL del sitio para obtener un reporte completo de todos los recursos HTTP.
- En WordPress, el plugin SSL Insecure Content Fixer identifica y corrige automaticamente las URLs problematicas.
Como solucionar el contenido mixto en WordPress
Metodo 1: Reemplazar URLs en la base de datos
Instalar el plugin Better Search Replace y realizar un reemplazo de:
http://tudominio.comporhttps://tudominio.comen todas las tablas de la base de datos.- Usar la opcion de "Dry Run" primero para ver cuantos registros seran afectados sin realizar cambios.
Metodo 2: Agregar regla en .htaccess para forzar HTTPS en recursos
Esta solucion funciona como medida adicional pero no reemplaza corregir las URLs en la base de datos:
Header always set Content-Security-Policy "upgrade-insecure-requests;"
Metodo 3: Modificar wp-config.php
define('WP_HOME', 'https://tudominio.com');
define('WP_SITEURL', 'https://tudominio.com');Contenido mixto en sitios sin WordPress
Para sitios HTML o PHP estaticos, buscar en todos los archivos referencias a recursos con http:// y reemplazarlas por https:// o por URLs relativas al protocolo (comenzando con // en lugar de http:// o https://).
- Usar el Administrador de Archivos de cPanel para buscar en todos los archivos del sitio.
- En VPS con acceso SSH, el comando
grep -r "http://" /ruta/sitio/lista todas las ocurrencias.
