Corrección de errores ERR_CLEARTEXT_NOT_PERMITTED

Encontrarte con el error NET::ERR_CLEARTEXT_NOT_PERMITTED en tu dispositivo Android puede ser un verdadero obstáculo, especialmente cuando lo único que intentas hacer es acceder a un sitio o aplicación web.
Este error actúa esencialmente como un guardián, impidiendo el acceso a sitios que transmiten información sin cifrar, o «en texto claro».
Pero hay formas de sortear este bloqueo, tanto si eres un usuario habitual como si eres un desarrollador de aplicaciones o te encargas del sitio web.

Sumergirse en la Webview de Android

Android Webview es una ingeniosa función que permite a las aplicaciones mostrar contenido web sin necesidad de un navegador completo.
Es especialmente útil para las aplicaciones web, que son básicamente sitios web empaquetados para ejecutarse como aplicaciones nativas en tu teléfono.
Sin embargo, Webview no ofrece el conjunto completo de funcionalidades del navegador, por lo que utilizar Chrome u otro navegador puede proporcionarte una mejor experiencia de navegación web.

El error NET::ERR_CLEARTEXT_NOT_PERMITTED es exclusivo de Webview dentro de las aplicaciones Android.

El error err_cleartext_not_permitted visto en una aplicación Android.

No verás este error cuando utilices navegadores como Chrome, incluso si intentas acceder a un sitio web HTTP, que podría darte sólo un «No seguro«.

Comprender el error NET::ERR_CLEARTEXT_NOT_PERMITTED

Este error aparece cuando Webview intenta cargar una página que utiliza HTTP o tiene sin cifrar datos.
Es la forma que tiene Android de decir: «Eh, esto no es seguro».
Aunque el sitio web en sí no está roto ni es inaccesible (puedes acceder a él a través de un navegador normal sin problemas), las aplicaciones de Android bloquearán el acceso para mantener seguros los datos del usuario.

Causas del error

La configuración predeterminada de Android impide que las aplicaciones envíen o reciban datos en texto claro para evitar violaciones accidentales de la seguridad.
Ésta ha sido la norma desde Android 9.0 y se aplica a las aplicaciones que utilizan Webview, lo que explica por qué este error no aparecerá cuando navegues con navegadores estándar en Android.

Solucionar el error NET::ERR_CLEARTEXT_NOT_PERMITTED

Si eres un usuario habitual, no hay nada que puedas hacer para deshacerte del error ERR_CLEARTEXT_NOT_PERMITTED.
En ese caso, lo mejor que puedes hacer es intentar acceder al sitio web utilizando un navegador web completo como Chrome o el navegador predeterminado de tu dispositivo.

Sin embargo, si estás en el lado del desarrollo o te encargas tú mismo del sitio web, generalmente hay tres estrategias para abordar este error:

1. Modifica AndroidManifest.xml

Cada aplicación Android viene con un archivo AndroidManifest.xml, que contiene información crucial sobre la aplicación.
Editando este archivo para permitir o no el tráfico de texto claro, los desarrolladores pueden proporcionar una solución temporal.
Sin embargo, recuerda que Google recomienda no permitir el texto claro por motivos de seguridad.

Puedes acceder al archivo y editarlo con Android Studio.Android Studio puede ayudar a editar los archivos de la aplicación para resolver los errores err_cleartext_not_permitted.Pasos para permitir el tráfico de texto claro en tu aplicación:

    1. Inicia Android Studio y abre el proyecto de tu aplicación.
    2. En la vista Proyecto, expande la carpeta `app` y luego la carpeta `manifests` para encontrar `AndroidManifest.xml`. Android studio mostrando un paquete de aplicaciones.
    3. Haz doble clic en `AndroidManifest.xml` para abrirlo en el editor.
    4. Busca la etiqueta `<application>` y añádele el atributo `android:usesCleartextTraffic=»true»`.
      Si el atributo ya existe y tiene el valor `false`, cámbialo a `true`.

       <application
      
             ...
      
             android:usesCleartextTraffic="true">
      
             ...
      
         </application>

    5. Después de editar, guarda los cambios y cierra el archivo.
    6. Ejecuta tu aplicación para asegurarte de que se ha resuelto el error.

      2. Permitir el dominio mediante network_security_config.xml

      Para un enfoque más específico, los desarrolladores pueden especificar qué dominios pueden utilizar texto claro en su aplicación añadiéndolos a un archivo de configuración de seguridad de red.
      Este método ofrece más seguridad que permitir el texto claro en toda la aplicación.
      Pasos para especificar el tráfico de texto claro para dominios concretos:

      1. Crear network_security_config.xml: En Android Studio, navega hasta el directorio `res`, haz clic con el botón derecho del ratón, selecciona `Nuevo` > `Archivo de recursos Android`, nómbralo `network_security_config` y selecciona `XML` como tipo de recurso.
      2. Definir permisos de texto claro: Edita `network_security_config.xml` para especificar los dominios que tienen permiso para utilizar el tráfico de texto claro.
         <?xml version="1.0" encoding="utf-8"?>
        
         <network-security-config>
        
         <domain-config cleartextTrafficPermitted="true">
        
         <domain includeSubdomains="true">example.com</domain>
        
         </domain-config>
        
         </network-security-config>

        Sustituye `ejemplo.com` por tu dominio real.

      3. Vincula la configuración a tu aplicación: Abre `AndroidManifest.xml` y añade una referencia a la configuración de seguridad de la red dentro de la etiqueta `<application>`.
         <application
        
         ...
        
         android:networkSecurityConfig="@xml/network_security_config">
        
         ...
        
         </application>
      4. Guarda todos los cambios, cierra los archivos y ejecuta tu aplicación para comprobar si se ha resuelto el problema.

      3. Obliga a tu sitio web a usar HTTPS

      La forma más infalible de evitar este error es asegurarte de que tu sitio web utiliza HTTPS, cifrando todos los datos en tránsito.
      Los estándares web modernos prácticamente exigen el uso de HTTPS por seguridad y ventajas SEO.
      Si utilizas un servicio de alojamiento como Kinsta, configurar un certificado SSL y forzar el uso de HTTPS puede ser pan comido.

      Pasos para asegurar tu sitio web con HTTPS:Si eres cliente de 10Web, puedes asegurar automáticamente tu sitio web con HTTPS en el panel de control.

      1. Accede a tu panel de control de 10Web.
      2. Haz clic en el sitio web en el que quieras utilizar HTTPS.
      3. Ve a Servicios de alojamiento > Herramientas.
      4. Selecciona Generar certificado SSL gratuito en el menú desplegable.
      5. Haz clic en Aplicar.

      Otras plataformas o proveedores de alojamiento también pueden ofrecer una forma de añadir un certificado SSL y redirigir el tráfico a HTTPS a través del panel de control o del administrador de tu cuenta.
      Si no es así, aquí tienes instrucciones generales para configurarlo tú mismo:

      1. Utiliza Let’s Encrypt u otro proveedor para obtener un certificado SSL gratuito para tu sitio web.
      2. Sigue la documentación de tu proveedor de alojamiento para instalar el certificado SSL en tu servidor.
      3. Asegúrate de que tu sitio web redirige todo el tráfico HTTP a HTTPS. Esto puede hacerse mediante el archivo `.htaccess` para servidores Apache, el archivo de configuración Nginx para servidores Nginx, o a través del panel de control de tu alojamiento.

      Para Apacheañade lo siguiente a tu archivo `.htaccess`:

       RewriteEngine On
      
       RewriteCond %{HTTPS} off
      
       RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

      Para Nginxañade lo siguiente al bloque de tu servidor:

       server {
      
       listen 80;
      
       server_name example.com www.example.com;
      
       return 301 https://$server_name$request_uri;
      
       }
      1. Utiliza herramientas en línea como la Prueba SSL de SSL Labs para comprobar la configuración SSL de tu sitio y asegurarte de que HTTPS se aplica correctamente.

      Poniendo en práctica estos pasos, podrás resolver el error «NET::ERR_CLEARTEXT_NOT_PERMITTED», mejorando la seguridad y fiabilidad de tu aplicación y sitio web para Android.

      Conclusión

      Para el usuario medio, encontrarse con el error NET::ERR_CLEARTEXT_NOT_PERMITTED significa que ha llegado el momento de intentar acceder al sitio con un navegador móvil como Chrome.
      Sin embargo, los desarrolladores y propietarios de sitios web disponen de varias vías para eludir o eliminar este error, garantizando una experiencia de usuario fluida y segura.
      Ya sea ajustando la configuración de la aplicación o actualizando los protocolos de seguridad del sitio web, abordar este error no sólo resuelve los problemas de acceso, sino que también se alinea con las mejores prácticas de seguridad digital.


      Say goodbye to website errors

      Share article

      Leave a comment

      Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

      Your email address will never be published or shared. Required fields are marked *

      Comment*

      Name *