¿Cómo instalo un certificado de usuario?

21

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 raíz ca.

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

He intentado muchos métodos diferentes para importar el certificado, incluida la conversión entre formatos: llego hasta donde se reconoce e "instala", pero, en realidad, parece que nunca se instala o no es visible en ninguna parte (marcado bajo 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 hack ya que necesito una solución escalable

William Hilsum
fuente
¡Bienvenido 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.
dotVezz
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 obtengo ninguna opción después de instalar / decir que se ha instalado y, de nuevo, no pasa nada.
William Hilsum
@dotVezz Esa pregunta se trata de instalar un certificado de servidor web. Hilsum pregunta sobre el uso de un certificado de cliente para autenticarse en un servidor.
Dan Hulme
¿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.
Dan Hulme
1
@Dave Necesitas hacer una nueva pregunta para ver si alguien lo sabe. Agregar una pregunta en los comentarios significa que la mayoría de las personas que pueden responder no la verán.
Dan Hulme

Respuestas:

2

Desde StackOverflow: ¿Cómo instalar un certificado CA confiable 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 hay una interfaz de usuario para actualizar la lista de certificados raíz de confianza, pero se está discutiendo sobre cómo agregar esa característica. No está claro si existe una solución 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 11231 de Android: es posible que desee agregar su voto y consulta a ese error.

11231 se cerró en noviembre de 2011 y el estado se lanzó 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 problema. Si me perdí algo, abriré problemas más específicos para abordar las brechas.

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

Cambios en la configuración:

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

Nueva API de KeyChain

  • 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.

Email

  • El correo electrónico ahora usa la API KeyChain para permitir la autenticación del certificado del cliente para las 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, una solicitud de mejora fue creado Permitir a los usuarios instalar propios certificados de CA .

Muchos usuarios (incluidas las empresas) usan certificados autofirmados para SSL / TLS, ya sea porque no quieren pagarlo o porque simplemente no confían en otras compañías y quieren hacerlo ellos mismos (en realidad, no hay razón para hacerlo). compre un certificado cuando no sea necesario que los usuarios anónimos de Internet confíen en su servidor).

Por el momento, es posible instalar un certificado 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 un terrible "Monitoreo de red".

Ryan Conrad
fuente
44
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.
jtolds
2

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

simplegamer
fuente
0

Puede instalar el certificado raíz otorgado 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

Furquan
fuente
1
Estamos buscando respuestas que expliquen las cosas completamente. ¿Podría ampliar un poco su respuesta?
Dan Hulme