# Solucionar advertencias de contenido mixto después de habilitar HTTPS

Source: https://support.kapsulehost.com/es-es/ssl-mixed-content

## Qué es el contenido mixto

Un navegador trata una página como segura solo si la página y todo lo que carga llegaron a través de HTTPS. Si una página HTTPS extrae 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 de manera muy diferente:

- **Contenido mixto activo**: scripts, hojas de estilos, iframes y XHR. Los navegadores bloquean estos directamente. Los diseños se cierren, los sliders se detienen, los formularios dejan de enviarse. Este es el tipo destructivo.
- **Contenido mixto pasivo**: imágenes, audio y video. Estos generalmente se cargan, pero la contraseña está degradada o se elimina.

Por lo tanto, un sitio puede parecer completamente bien y aún así perder su candado, o verse roto sin error obvio en la página misma.

## Por qué sucede después de habilitar SSL

Activar SSL cambia la forma en que se sirve su sitio. No cambia lo que se almacena dentro.

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

- Contenido de publicaciones y páginas, incluida cada imagen insertada a través del editor.
- Registros de archivos adjuntos multimedia.
- Configuración del personalizador de temas y opciones de temas.
- Contenido de widgets y configuración de bloques.
- Configuración de complementos, particularmente constructores de páginas y complementos de sliders.
- Las opciones `siteurl` y `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úrese de que cada visitante llegue a HTTPS en primer lugar.

1. Inicie sesión en [KPanel](https://kpanel.kapsulehost.com) y haga clic en **Websites** en la barra lateral izquierda.
2. Haga clic en su sitio.
3. Abra **Settings**.
4. En **Behavior**, active **Forzar HTTPS**.
5. Haga clic en **Guardar cambios**.

![La configuración Forzar HTTPS en Behavior en la página Configuración de un sitio en KPanel](https://support.kapsulehost.com/help/screenshots/ssl-mixed-content.6758a2bb.webp)

Cada solicitud HTTP ahora se redirige a HTTPS en el servidor, antes de que se ejecute su sitio.

> **Note:** Forzar HTTPS maneja las solicitudes que llegan. No reescribe las URLs ya almacenadas dentro de su base de datos, por lo que por sí sola no eliminará una advertencia de contenido mixto causada por una imagen `http://` codificada. Necesita ambos, este y el Paso 2.

Si SSL aún no está activo o el certificado se ve mal, comience con [Certificados SSL](https://support.kapsulehost.com/es-es/ssl-certificates).

## Paso 2: Reescribir las URLs almacenadas

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

1. Abra el sitio, luego la pestaña **WordPress**, luego la sección **Acciones rápidas**.
2. Busque la tarjeta **Buscar y reemplazar** y haga clic en **Configure**.
3. En **Buscar (valor anterior)** ingrese `http://yourdomain.co.nz`.
4. En **Reemplazar por** ingrese `https://yourdomain.co.nz`.
5. Deje **Prueba en seco (solo vista previa, sin cambios)** marcada y haga clic en **Preview**.
6. Revise el recuento y el desglose por tabla.
7. Desmarque **Prueba en seco**, haga clic en **Run** y confirme.

Se realiza automáticamente una copia de seguridad completa antes del reemplazo, y se cubren todas las tablas, incluidas las creadas por complementos. Los ajustes de complementos serializados se manejan correctamente.

> **Warning:** No haga esto con una consulta SQL en phpMyAdmin. WordPress almacena la configuración de complementos 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 restablece silenciosamente a vacío. No hay reparación que no sea restaurar una copia de seguridad. La explicación completa está en [Ejecutar una búsqueda y reemplazo](https://support.kapsulehost.com/es-es/wordpress-search-replace).

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

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

Suelte `--dry-run` para aplicarlo, y haga una copia de seguridad usted mismo primero: la consola no lo hace.

## Paso 3: Limpiar cada caché

Una copia en caché de una página seguirá sirviendo las URL HTTP antiguas mucho después de que se corrija la base de datos, que es por qué la gente a menudo piensa que el reemplazo no funcionó.

1. **WordPress**, luego **Acciones rápidas**, luego **Vaciar caché**.
2. **WordPress**, luego **Caching**, luego **Purgar la caché**, si el caché de página completa está activado.
3. **Performance**, luego **Kapsule CDN**, luego **Purge**, si la CDN está activada. Consulte [Purgar la caché de CDN](https://support.kapsulehost.com/es-es/cdn-cache-purge).
4. Cualquier complemento de almacenamiento en caché, desde su propia pantalla de configuración.
5. Su propio navegador. Pruebe en una ventana privada para no ser engañado por su propio caché.

## Paso 4: Buscar lo que queda

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

**Consola del navegador.** Abra herramientas de desarrollador con F12, vaya a la pestaña **Console** y recargue. El contenido mixto aparece como una advertencia explícita que nombra la URL completa del recurso ofendido. Esa URL le indica qué complemento o tema es responsable.

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

**Fuente de página.** Cargue la página, vea la fuente y busque `http://`. Ignore cualquier cosa dentro de atributos `xmlns` y declaraciones de esquema: son identificadores, no solicitudes.

Supervivientes comunes, y qué hacer sobre cada uno:

| Qué encuentra | Solución |
|---|---|
| Una imagen o logotipo en una configuración del personalizador de temas | Vuelva a cargar o vuelva a seleccionarlo en el personalizador |
| Un módulo de constructor de páginas con una URL de imagen `http://` escrita | Edite ese módulo y corrija la URL |
| La tabla de configuración propia de un complemento de slider | Vuelva a guardar el slider, o ejecute la búsqueda y reemplazo con `--all-tables` |
| Una fuente o script de un dominio de terceros | Compruebe si el proveedor ofrece HTTPS. La mayoría lo hace ahora. Cambie la URL |
| Un píxel de seguimiento o inserción de un proveedor antiguo | Si el proveedor no tiene HTTPS, elimínelo. Es una dependencia rota, no un problema de KapsuleHost |
| `http://` codificado en un archivo de plantilla de tema | Edite la plantilla, o mejor, use `https` o una referencia relativa de protocolo |

> **Tip:** Si exactamente una página se ve afectada y el resto del sitio está limpio, el culpable es el contenido de esa página, no una configuración de sitio general. Ábrala en el editor y busque el contenido multimedia que incrusta.

## Confirmar que está reparado

1. Cargue el sitio en una ventana privada.
2. El candado debe ser sólido, sin triángulo de advertencia ni indicación tachada.
3. Haga clic en el candado. El navegador reporta la conexión como segura sin aviso de contenido mixto.
4. Abra la consola y recargue una vez más. Cero advertencias de contenido mixto.
5. Verifique una página profunda, no solo la página de inicio: una página interior, una publicación de blog con imágenes y el pago en una tienda.

## Evitar que vuelva

- **Deje Forzar HTTPS activado.** Es una configuración de una línea que elimina toda una clase de problema.
- **Nunca escriba una URL `http://` completa en el contenido.** Use la biblioteca multimedia, que ahora almacena direcciones HTTPS.
- **Compruebe la configuración del complemento después de instalar cualquier cosa** que pida una URL.
- **Observe una advertencia que vuelva después de una actualización de complemento.** Algunos complementos restablecen sus propias URL almacenadas.
- **Vuelva a ejecutar la búsqueda y reemplazo después de cualquier migración**, ya que una base de datos importada trae las URL del host antiguo: [Migrar un sitio web desde cPanel](https://support.kapsulehost.com/es-es/sites-migrate-cpanel).

## Solución de problemas

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

**El sitio se rompió completamente después del reemplazo.** Restaure la copia de seguridad anterior a la ejecución automática: [Restaurar desde una copia de seguridad](https://support.kapsulehost.com/es-es/restoring-from-backup).

**La consola muestra una advertencia de contenido mixto en un dominio que no es el mío.** Un recurso de terceros. No puede reparar su servidor: o bien admiten HTTPS y usted cambia la URL, o bien suelta el recurso.

**Todo es HTTPS pero el sitio no se carga en absoluto.** Eso no es contenido mixto. Comience con [Sitio web no cargado](https://support.kapsulehost.com/es-es/website-not-loading) y verifique el certificado en [Certificados SSL](https://support.kapsulehost.com/es-es/ssl-certificates).

Si ha revisado todo esto y la advertencia persiste, envíe un correo electrónico a [support@kapsulehost.com](mailto:support@kapsulehost.com) con la URL afectada y el texto exacto de la advertencia de la consola del navegador.
