Estoy intentando instalar el certificado autofirmado para mi servidor web en Android 4.3. Tengo el archivo .crt en la raíz de la tarjeta SD (que en realidad está emulado porque no tengo tarjeta SD en la ranura).
Para instalar el certificado, vaya a Configuración -> General -> Seguridad -> Almacenamiento de credenciales -> Instalar desde el almacenamiento del dispositivo.
Aparece un cuadro de diálogo que muestra el nombre del certificado (el nombre del archivo menos la extensión .crt) que puedo modificar (pero no), un menú desplegable "usado para" con "VPN y aplicaciones" seleccionado y texto en la parte inferior del cuadro de diálogo que informa "El paquete contiene: un certificado de usuario". Todo se ve bien, así que hago clic en "Aceptar". El cuadro de diálogo desaparece y aparece un mensaje emergente con "[nombre] instalado".
Sin embargo, si voy inmediatamente a "Credenciales de confianza y selecciono" Usuario ", no hay nada allí. El nuevo certificado tampoco está en" Sistema "pero no lo esperaría allí. Si voy a un navegador después de esto e intento ir a mi sitio web, sigo recibiendo la advertencia de que el certificado del sitio no es confiable. También he intentado reiniciar, pero no hace la diferencia.
¿Qué estoy haciendo mal? La falta total de mensajes de error no es útil. ¿Es posible que mi certificado tenga el formato incorrecto? He intentado usar el archivo .crt en el directorio ssl del servidor y he intentado convertirlo al formato DER.
Actualización: leí en alguna parte que Android requiere que los certificados estén en formato p12, así que convertí el certificado Apache2 a p12 usando el siguiente comando:
openssl pkcs12 -export -inkey server.key -in server.crt -out ~/server.p12
Luego repetí los pasos anteriores, recibí el mismo mensaje de éxito y luego seguí sin ver el certificado en las credenciales del usuario y sigo recibiendo el error de certificado no confiable del navegador móvil.
fuente