Si queremos instalar un certificado raíz en Android, como para todo, tenemos dos formas de hacerlo. Esto nos puede interesar, por ejemplo, si utilizamos un servicio de correo privado de empresa, y como es para uso de los empleados únicamente se utiliza un certificado autofirmado por la empresa. O, por ejemplo, si tenemos nuestro propio servidor y hemos instalado, por ejemplo Owncloud sobre HTTPs y tenemos también un certificado autofirmado.

Aunque, también puede ser que quieras realizar trámites burocráticos con la Administración desde el móvil, o incluso pedir cita médica en algunos lugares desde Internet de forma segura.

Podéis ver aquí el proceso de creación de un certificado raíz para nuestros servicios web.

Método sencillo

La primera forma es muy sencilla, desde la configuración de nuestro teléfono y sin trabajar demasiado, sólo tenemos que copiar el certificado en nuestra tarjeta SD y seguidamente:

Ajustes > Seguridad > Instalar desde almacenamiento del teléfono (es de las últimas y a veces viene mal traducida).
Entonces seleccionamos nuestro archivo de certificado, nos pedirá ponerle nombre (le ponemos cualquier cosa, o el nombre que tenga la entidad) y aceptamos.

La pega es que ahora, Android, nos obliga a establecer un nivel más avanzado de seguridad en nuestro terminal, por ejemplo, establecer un PIN, una contraseña, o un patrón de desbloqueo. Si nos saltamos esto, no podremos instalar el certificado, y si seguimos con esta configuración, cada vez que bloqueemos y desbloqueemos nuestro terminal, tendremos que introducir nuestro nuevo PIN/Contraseña/Patrón, lo cual puede ser un poco engorroso.

Os dejo un pequeño vídeo para hacer esto paso a paso.

Para no tener que utilizar el patrón…

Pero claro, es por nuestra seguridad, por si es un certificado de usuario y nos quitan el móvil, para que no suplanten nuestra identidad digital. Pero si aún así te parece incómodo, o se trata de un certificado raíz para una web o servicio podemos instalarlo como certificado de confianza de nuestro dispositivo. Sólo necesitamos tener acceso root, openssl, adb (android debug bridge), el modo depuración USB y enchufar nuestro móvil al ordenador.

Por supuesto, esto se puede hacer desde el móvil con algunas aplicaciones para teléfonos con acceso root habilitado, o con un administrador de archivos y el hash del objeto del certificado, pero yo lo hice así:

La primera línea es:

1
openssl x509 -inform PEM -subject_hash_old -in certificado.pem | head

Con esto obtenemos el hash, es importante el parámetro -subject_hash_old, ya que subject_hash utiliza un algoritmo nuevo y tal vez no sea soportado por algunas versiones de Android. Lo pasamos a head, porque la salida es muy larga y sólo nos interesa la primera línea (head -1 también nos sirve)

Nuestro certificado se llamará hash.0 así que lo copiamos (con cp), o lo renombramos (con mv).
Ahora debemos acceder al terminal, lo primero es utilizar adb como root, y luego montar (en el teléfono), /system como lectura escritura (para eso adb remount).

Una vez hecho esto copiamos nuestro archivo de certificado local a /system/etc/security/cacerts (es lo mismo que /etc/security/cacerts, /etc/ suele ser un enlace a /system/etc).

Por último tenemos que cambiar los permisos del archivo, para ello accedemos con shell y ejecutamos chmod.
Sólo queda reiniciar el teléfono y listo.

¡También tengo vídeo para esto!

Modificación 03/03/2016 : Corrección de error tipográfico y añadido los vídeos

 

Foto principal: microsiervos (Flickr CC)

Fuente: poesiabinaria

¿Quién está en línea?

Hay 884 invitados y ningún miembro en línea