¿Cómo se importan los certificados de CA en un teléfono Android?


59

Quiero conectarme a la red inalámbrica de mi universidad con mi Nexus One. Cuando voy a "Agregar red Wi-Fi" en la Configuración inalámbrica, relleno el SSID de la red y selecciono 802.1x Enterprise para la seguridad y completé todo.

El problema es que la conexión inalámbrica de nuestra universidad utiliza el certificado Thawte Premium Server CA para la certificación.

Cuando hago clic en la lista desplegable para el certificado de CA, no aparece nada en la lista (solo N / A)

Ahora tengo el certificado (Thawte Premium Server CA.pem) y lo he movido a mi tarjeta SD, pero no parece que Android lo detecte automáticamente.

¿Dónde debo colocar el certificado para que el administrador inalámbrico de Android lo reconozca? En otras palabras, ¿cómo puedo importar un certificado de CA para que Android reconozca que está en el teléfono y lo muestre en la lista desplegable Certificado de CA?

Gracias por cualquier ayuda,

Tomek

PD: mi teléfono no está rooteado

EDITAR : después de investigar un poco, parece que puede instalar certificados yendo a la configuración de su teléfono> Ubicación y seguridad> Instalar desde la tarjeta SD

Desafortunadamente, parece que la única extensión de archivo aceptada es .p12. No parece que haya una manera de importar archivos .cer o .pem (que son los únicos dos archivos que vienen con los certificados Thawte) en este momento.

Parece que puede usar un convertidor para convertir sus archivos .cer o .pem a .p12, sin embargo, se necesita un archivo de clave.

https://www.sslshopper.com/ssl-converter.html

No sé dónde obtener este archivo de clave para los certificados Thawte.


1
Desearía que esto no estuviera cerrado. Me ha sido de gran ayuda. Gracias a todos en esta página.
Ricket

un certificado .crt también funciona bien
Lie Ryan

1
En un dispositivo HTC con Android 2.3.5 tuve que cambiar la extensión del archivo de .pema .crt. Después de eso, podría localizarlo desde la Install from SD cardopción en la configuración de Seguridad . Se puede poner en la raíz de la tarjeta SD o en la Downloadscarpeta.
JJD

Openssl también debería poder convertir entre varios formatos de certificado.
Snaut

Respuestas:


16

He utilizado el instalador de certificados de Android de RealmB con gran éxito. Simplemente cargue su archivo codificado PEM (.cer o .pem) y luego apunte el navegador de su teléfono al enlace que se proporciona. No necesita una clave privada.


Ese sitio en sí mismo dice si la carga es un certificado válido o no. Me dio un error de certificado no válido. Cargué el que tenía los permisos de archivo correctos en mi máquina Linux y funcionó muy bien.
so_mv

1
Las posibles implicaciones de seguridad de ese sitio deben señalarse junto con el enlace (o cite ese sitio web en sí: ¿Cómo es la seguridad? - Malo, solo debe cargar archivos que considere que se pueden ver públicamente sin ningún efecto secundario ).
O Mapper

Esto ya no funciona :( Falló la
carga

6

Primero: Android solo entiende el formato binario de CA y solo con el formato de archivo * .crt.
Segundo: Android solo entiende los certificados de usuario en formato de archivo * .p12.

Entonces puede verificar si su archivo CA binario o texto es muy simple: ábralo con cualquier editor de texto ^

Si hay algo así 0‚ i0‚ Т , entonces es binario.

Si ves algo como

Certificado: Datos: Versión: 3 (0x2) Número de serie: 96: 0e: 45: 58: 68: 9a: bf: 00 Algoritmo de firma: sha1WithRSAEncryption Issuer: C = UA, ST =

Entonces es texto. Es muy simple convertirlo a binario usted mismo en * nix:

openssl x509 -inform PEM -outform DER -in CA.pem -out CA.crt

O simplemente pregúntele al administrador de su sistema.

Copie CA.crt y usercert.p12 en su tarjeta SD o envíela por correo electrónico (si tiene un cliente de correo electrónico configurado en Android, generalmente los archivos adjuntos descargados se almacenan en la carpeta de descargas, en realidad no importa).

Vaya a Seguridad y busque una opción como esta: instale el certificado desde su tarjeta SD

Primero instale CA.crt, luego usercert.p12

Vaya a wifi y haga una nueva conexión, elija 802.1x EAP lo que sea y seleccione sus certificados para CA CA.crt y para el certificado de usuario usercert.p12 en mi caso también ingresé el nombre de usuario.


2
A quien sea que esto pueda ayudar en el futuro: no tuve problemas para instalar un certificado de formato de texto en un SGS4, pero solo después de haberlo movido a la carpeta Descargas ( Mis documentos no funcionaría) y también solo con la opción indicada en el pregunta, no abriendo el archivo CRT desde un administrador de archivos, donde Android afirmó que el tipo de archivo era desconocido (a diferencia de Nexus 7, donde funcionó así).
O Mapper

Tuve que usar el certificado raíz, no el certificado del sitio cuando lo guardé de Chrome. Desde una página de Chrome: F12 (consola de desarrollo), pestaña Seguridad, Ver certificado, pestaña Ruta de certificación, haga clic en el nodo raíz superior, Ver certificado, pestaña Detalles, botón "Copiar a archivo ...", elija el formato DER. Apertura desde Google Drive, déjame instalar el certificado. Verifique que aparezca en el teléfono en Configuración, Seguridad, Credenciales de confianza, Usuario.
Curtis Yallop


5

Para otras personas que buscan esta respuesta que no pueden usar la solución de realmB porque no pueden acceder a Internet desde su teléfono.
¡Acabo de cambiar la extensión de archivo de mis certificados de .cera .crty todo funcionó bien! Gracias a los usuarios de este hilo xda por la solución.


0

Esa es exactamente la solución. Android acepta solo certificados en "modo binario". Si tiene un certificado en modo Texto, que es el formato de certificado más común, conviértalo simplemente en formato "DER Binary". Después de esto, inserte el certificado en la "carpeta de descarga del dispositivo Android y use el menú" Instalar desde la tarjeta SD "para instalar el certificado.

Funciona para Samsung Galaxy, teléfono Sony Xperia, HTC Phone Works para Android versión 3.xy 4.x

Olivier


0

¿Cómo se importan los certificados de CA en un teléfono Android?

La documentación oficial de Android se puede encontrar en Trabajar con certificados . Tenga en cuenta que el certificado debe estar codificado en ASN.1 / DER. Una vez que la codificación sea correcta, solo asegúrese de que la extensión sea CRT o CER. Si no es así (como lo nombró ca-cert.der), cámbiele el nombre (a ca-cert.crt).

Si tiene un certificado codificado PEM, conviértalo a ASN.1 / DER usando (según las instrucciones de Dimtry):

openssl x509 -in ca-cert.pem -inform PEM -outform DER -out ca-cert.crt

Si está interesado, el sistema Trust Store se graba en la ROM, por lo que realmente no puede modificarlo. Cuando modifica la tienda de confianza, en realidad está modificando /data/misc/keychainy uno de los dos archivos: cacerts-addedy cacerts-removed. Vea la implementación de la tienda de confianza ICS de Nikolay Elenkov .


0

Logré conectarme a la red de mi universidad siguiendo los siguientes pasos:

  1. Le pregunté a la universidad sobre el certificado que se usa, en mi caso DigicertCA.
  2. Búscalo en Google, descárgalo (lo tengo guardado en mi cuenta de Dropbox), guárdalo en la carpeta de descargas del teléfono (en mi caso, Samsung Galaxy S8).
  3. En el teléfono: vaya a Configuración-> Pantalla de bloqueo y seguridad-> Otras configuraciones de seguridad-> Instalar desde almacenamiento del dispositivo (Instalar certificado desde almacenamiento) - si el certificado se descarga en el teléfono (la carpeta de descargas en mi caso se reconoce y aparece para selección).
  4. Reinicia el teléfono.
  5. Al configurar la red, en el certificado de CA, seleccione Don't validate after installed on phone.

En mi caso funcionó, espero que ayude.


-1

Puede acceder a su cer / pem desde la tarjeta SD con el tipo MIME correcto que se instalará utilizando TJWS (edición de Android), por lo que no necesita cargar su certificado en algún sitio web.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.