¿Cómo instalo un certificado de usuario?

Tengo mi propio certificado raíz que firma los certificados de usuario.

Tengo un sitio que solo le permitirá acceder con un certificado de usuario firmado por la CA raíz.

Logré que este sitio funcione en iOS y Windows, pero no puedo hacerlo funcionar desde Android (4.2.2)

He probado muchos métodos diferentes para importar el certificado, incluida la conversión entre formatos: llegué a ser reconocido e "instalado", pero en realidad nunca parece instalarse o estar visible en ningún lugar (marcado en credenciales de confianza > usuario).

He leído aquí y las únicas soluciones parecen implicar descargar/modificar archivos y volver a cargarlos y luego reiniciarlos, o tener un firmware modificado/similar... Realmente quiero una forma compatible de hacer esto y realmente no quiero considerar un truco. ya que necesito una solución escalable.

¡Bienvenidos a los entusiastas de Android! ¿Ha tenido la oportunidad de ver cómo instalar un certificado web en un dispositivo Android ? Si bien la pregunta es antigua, la respuesta principal sigue siendo válida para Android 4.4.
Hola, sí lo hice... en un dispositivo HTC, me pregunta si quiero usarlo como "VPN o (no recuerdo) certificado" o "Certificado inalámbrico", luego dice que está instalado pero no hace nada... .. En un teléfono Samsung, no tengo opciones después de la instalación/dice que se ha instalado y, de nuevo, no pasa nada.
@dotVezz Esa pregunta es sobre la instalación del certificado de un servidor web. El Sr. Hilsum pregunta sobre el uso de un certificado de cliente para autenticarse en un servidor.
¿Qué sucede cuando intentas visitar el sitio? En Chrome >= 27.0.1453.49, debería solicitarle que seleccione el certificado cuando el servidor web solicite ese método de autenticación. Firefox no es compatible con esto.
@DanHulme: nada, solo parece que se agotó el tiempo de espera (ni siquiera una advertencia no válida) ... Supongo que se relaciona con no tener la CA instalada.
@DanHulme ah, mi error.
@DanHulme Estoy lidiando con un entorno similar. En Chrome (en dispositivos móviles), se me solicita que seleccione un certificado. Pero me preguntan cada vez que intento acceder al sitio. ¿Sabe si hay alguna manera de hacer que mi elección sea "fija" para que los usuarios no tengan que elegir qué certificado usar en cada visita?
@Dave Debe hacer una nueva pregunta para ver si alguien sabe. Agregar una pregunta en los comentarios significa que la mayoría de las personas que pueden responder no la verán.

Respuestas (3)

De StackOverflow: ¿Cómo instalar un certificado de CA de confianza en un dispositivo Android?

Pasé mucho tiempo tratando de encontrar una respuesta a esto (necesito Android para ver los certificados StartSSL). Conclusión: Android 2.1 y 2.2 le permiten importar certificados, pero solo para usar con WiFi y VPN. No existe una interfaz de usuario para actualizar la lista de certificados raíz de confianza, pero se está debatiendo sobre cómo agregar esa función. No está claro si existe una solución alternativa confiable para actualizar y reemplazar manualmente el archivo cacerts.bks.

Detalles y enlaces: http://www.mcbsys.com/techblog/2010/12/android-certificates/ . En esa publicación, vea el enlace al error de Android 11231 ; es posible que desee agregar su voto y consulta a ese error.

11231 se cerró en noviembre de 2011 y el estado fue Lanzado para Android 4.0 ICS.

Estas son las notas asociadas con el estado Liberado :

ICS intenta la mayoría, si no todos, los elementos de este número. Si me perdí algo, abriré problemas más específicos para abordar las lagunas.

Algunos detalles a continuación, planeo una publicación de blog más formal más adelante. Todo lo siguiente debería estar visible en el SDK de Android 4.0 si desea probarlos y enviar comentarios.

Cambios en la configuración:

  • Las autoridades de certificación (CA) del sistema ahora están visibles en Configuración > Seguridad > Credenciales de confianza.
  • Las CA del sistema ahora se pueden desactivar y volver a activar
  • los usuarios pueden instalar sus propias CA desde Configuración > Seguridad (así como otros mecanismos, como a través del navegador o abrir desde un archivo adjunto de correo electrónico).
  • las CA de los usuarios se pueden ver y eliminar en Configuración > Seguridad > Credenciales de confianza
  • en lugar de un PIN de 8 caracteres separado para el almacenamiento de credenciales, el acceso ahora se controla a través de la pantalla de bloqueo

Nueva API de cadena de claves

  • KeyChain.createInstallIntent permite que las aplicaciones soliciten la instalación de credenciales, básicamente haciendo pública la interfaz utilizada por Configuración para solicitar la instalación. los usuarios deben confirmar las solicitudes de instalación como antes.
  • KeyChain.choosePrivateKeyAlias/getPrivateKey/getCertificateChain permite que las aplicaciones soliciten claves privadas y sus certificados asociados para el uso de la aplicación. un caso de uso común sería para la autenticación de certificado de cliente con https.

Correo electrónico

  • El correo electrónico ahora usa KeyChain API para permitir la autenticación de certificado de cliente para cuentas de Exchange

Navegador

  • El navegador ahora usará KeyChain para solicitar un certificado de cliente cuando el servidor solicite uno para la autenticación.

En marzo de 2014, se creó una solicitud de mejora Permitir que los usuarios instalen sus propios certificados de CA.

Muchos usuarios (incluidas las empresas) utilizan certificados autofirmados para SSL/TLS, ya sea porque no quieren pagar por ellos o porque simplemente no confían en otras empresas y quieren hacerlo ellos mismos (en realidad, no hay razón para hacerlo). comprar un certificado cuando no se requiere que los internautas anónimos confíen en su servidor).

Por el momento, es posible instalar un certificado de CA personalizado en Android, pero se detecta como "certificado de usuario", que parece estar destinado a los certificados del lado del cliente. Como resultado, estos certificados se muestran como "certificados de usuario" en la GUI y desde Android 4.4, se ha implementado una terrible "Red puede ser monitoreada".

Esta es una gran respuesta pero para la pregunta equivocada. La pregunta pregunta cómo instalar un certificado de cliente para la autenticación de certificado de cliente (raro para sitios web). Esta respuesta explica cómo instalar una nueva CA raíz, que es diferente.

Vaya a Configuración > Seguridad > Almacenamiento de credenciales > Instalar desde tarjeta SD. Si no está allí, es posible que necesite una versión de Android más reciente o una solución que desconozco.

Puede instalar el certificado raíz proporcionado por el sitio en Android. Vaya a Configuración en su teléfono Android, toque instalar credenciales desde la tarjeta SD.

Asegúrese de descargar el certificado en su tarjeta SD

Estamos buscando respuestas que expliquen las cosas completamente. ¿Podrías ampliar un poco tu respuesta?