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

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

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

Cuando hago clic en la lista desplegable para el certificado de CA, no obtengo 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 poner 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 forma de importar archivos .cer o .pem (que son los únicos dos archivos que vienen con los certificados de 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 clave.

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

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

Ojalá esto no se cerrara. Me ha sido de gran ayuda. Gracias a todos en esta página.
un certificado .crt también funciona bien
En un dispositivo HTC con Android 2.3.5 tuve que cambiar la extensión del archivo de .pema .crt. Después de eso, pude ubicarlo 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.
Openssl también debería poder convertir entre varios formatos de certificado.
Respondí una pregunta similar aquí: stackoverflow.com/a/65888246/624814 . Desafortunadamente, no tengo suficiente reputación en este canal para responderla.

Respuestas (8)

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

Ese sitio en sí mismo dice si la carga es un certificado válido o no. Me dio error de certificado inválido. Cargué el que tenía los permisos de archivo correctos en mi máquina Linux y funcionó muy bien.
Las posibles implicaciones de seguridad de ese sitio deben señalarse junto con el enlace (o citar ese sitio web en sí mismo: ¿Cómo es la seguridad? - Malo, solo debe cargar archivos que crea que pueden verse públicamente sin ningún efecto secundario ).
Esto ya no funciona :( Falló la carga

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 es binario o de texto muy simple: ábralo con cualquier editor de texto ^

Si hay algo como 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 Emisor: 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 pregunte a su administrador del sistema.

Copie CA.crt y usercert.p12 en su tarjeta SD o envíelo por correo electrónico (si tiene un cliente de correo electrónico configurado en Android, por lo general, 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.

Para 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í).
Tuve que usar el certificado raíz, no el certificado del sitio cuando se guardó desde 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. Al abrir desde Google Drive, déjame instalar el certificado. Verifique que aparezca en el teléfono en Configuración, Seguridad, Credenciales de confianza, Usuario.

http://abtevrythng.blogspot.com/2010/06/adding-cer-certificates-on-your-android.html

Muestra cómo lograr realmente esto. Funcionó bien para mí. Pruébalo.

En este artículo se proporciona la conversión de .cer a .pfx (que es lo que necesita en Android). Se proporciona un método simple mediante el cual puede convertir .cer a .pfx y usarlo para conectarse a la red Wi-Fi. ¡ Además , no necesita ninguna clave para convertir .cer a .pfx!

Para otras personas que buscan esta respuesta y que no pueden usar la solución de realmB porque no pueden acceder a Internet en 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.

¿Cómo se importan certificados de CA a 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 lo es (como lo nombró ca-cert.der), entonces cámbiele el nombre (a ca-cert.crt).

Si tiene un certificado codificado con PEM, conviértalo a codificación 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 Trust Store del sistema está grabado en la ROM, por lo que realmente no puede modificarlo. Cuando modifica Trust Store, en realidad está modificando /data/misc/keychainuno de dos archivos: cacerts-addedy cacerts-removed. Consulte Implementación del almacén de confianza ICS de Nikolay Elenkov .

Esa es exactamente la solución. Android solo acepta 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 Binario". Después de esto, inserte el certificado en la "carpeta de descarga del dispositivo Android y use el menú "Instalar desde tarjeta SD" para instalar el certificado.

Funciona para Samsung Galaxy, Sony Xperia phone, HTC Phone Funciona para Android versión 3.x y 4.x versión

olivier

He conseguido 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 el almacenamiento del dispositivo (Instalar certificado desde el almacenamiento) - si el certificado se descarga en el teléfono (Carpeta de descargas en mi caso, se reconoce y aparece para selección).
  4. Reinicie el teléfono.
  5. Al configurar la red, en Certificado CA, seleccione Don't validate after installed on phone.

En mi caso funcionó, espero que te sirva.

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