La función de configuración de seguridad de red permite a las aplicaciones personalizar su configuración de seguridad de red en un archivo de configuración seguro y declarativo sin modificar el código de la aplicación. Estas configuraciones se pueden configurar para dominios específicos y para una aplicación específica. Las capacidades clave de esta función son las siguientes:
- Anclas de confianza personalizadas: personalice qué autoridades de certificación (CA) son confiables para las conexiones seguras de una aplicación. Por ejemplo, confiar en certificados autofirmados particulares o restringir el conjunto de CA públicas en las que confía la aplicación.
- Anulaciones de solo depuración: depure de forma segura las conexiones seguras en una aplicación sin riesgo adicional para la base instalada.
- Exclusión del tráfico de texto sin cifrar: proteja las aplicaciones del uso accidental del tráfico de texto sin cifrar.
- Anclaje de certificado: restringe la conexión segura de una aplicación a certificados particulares.
A partir de Android P todas la peticiones de recursos web tienen que ser usando el protocolo https, sino se recibirá un error
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
Para poder obtener recursos web con el protocolo htpp, sin cifrar se debe añadir una directiva de uso
Solución
El texto en claro (ClearText) es cualquier información transmitida o almacenada que no está encriptada o que está destinada a encriptarse, en obtención de recursos web se hace con el http y el https para el canal cifrado.
La solución más simple es añadir en AndroidManifest.xml en dentro del bloque Application
android:usesCleartextTraffic="true"
Si queremos más personalización usar
android:networkSecurityConfig="@xml/network_security_config"
Crear el archivo xml/network_security_config
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
Si queremos otorgar permiso al usuario que pueda usar sus certificados
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
Recursos
Para más información documentación oficial Configuración de seguridad de la red