Instalación del certificado autofirmado mediante programación

Estoy lanzando la intención KeyChain para instalar un certificado autofirmado que tengo en la memoria como objeto X509Certificate (obtenido por el X509TrustManager, por el método checkServerTrusted). Con este código:

Intent intent = KeyChain.createInstallIntent(); intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certs[0].getEncoded()); intent.putExtra(KeyChain.EXTRA_NAME, "certificate"); context.startActivityForResult(intent, 0); 

Se inicia una nueva actividad y puedo obtener el mensaje "certificate is installed", pero no puedo encontrarlo a través de la lista de certificados de seguridad, y al intentar conectarme a ese host, parece que no está instalado.

¿Alguna idea acerca de cómo resolverlo?

La pantalla Lista de certificados de seguridad que menciona sólo contiene una lista de certificados de CA de confianza que ha agregado al dispositivo Android. (Nota: la lista de certificados del sistema es la lista de entidades emisoras de confianza que el fabricante del dispositivo ha establecido). No hay pantalla (por lo menos en un teléfono no enraizado) que muestra los certificados de KeyChain.

Para que una aplicación acceda a un certificado / clave, debe pedir permiso al sistema operativo. Para ello, la clase KeyChain tiene un método llamado choosePrivateKeyAlias, que muestra al usuario una actividad para seleccionar el certificado al que la aplicación puede tener acceso. Esta actividad debe enumerar cualquier certificado importado que haya instalado utilizando el método anterior.

Vea el siguiente enlace para más detalles.

Unificar acceso de almacén de claves en ICS

  • ¿Cómo puedo validar un android.net.http.SsLCertificate con un X509TrustManager?
  • Instalar certificado de usuario a través de ADB
  • Android - ¿Hay una manera de obtener platform.pk8 y platform.x509.pem la ROM firmada con?
  • Android - convertir la cadena de certificados pkcs12 al objeto de certificado x509 para bks keystore
  • Android manual X509 validación de la cadena de certificados
  • Aceptar certificados SSL autofirmados-> donde configurar TrustManager predeterminado
  • ¿Es este android SSL pinning implementación correcta y por qué este error aparece en el logcat?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.