Estoy intentando instalar el certificado autofirmado para mi servidor web en Android 4.3. Tengo el archivo .crt en el Root de la tarjeta SD (que en realidad es emulada ya que no tengo tarjeta SD en la ranura).
Para instalar el certificado voy a Setting -> General -> Security -> Credential Storage -> Install from device storage.
Me 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 lo hago), un desplegable "usado para" con "VPN y aplicaciones" seleccionado y un texto en la parte inferior del cuadro de diálogo que informa "El paquete contiene: un certificado de usuario". Todo parece correcto, así que hago clic en "Aceptar". El diálogo desaparece y aparece un mensaje de bienvenida con "[nombre] instalado".
Sin embargo, si voy inmediatamente a "Credenciales de confianza" y selecciono "Usuario", no hay nada. El nuevo certificado tampoco está en "Sistema", pero no esperaba que estuviera allí. Si voy a un navegador después de esto y trato de ir a mi sitio web, sigo recibiendo la advertencia de que el certificado del sitio no es de confianza. También he probado a reiniciar, pero no hay ninguna diferencia.
¿Qué estoy haciendo mal? La ausencia total de mensajes de error no ayuda. ¿Es posible que mi certificado esté en un formato incorrecto? He intentado usar el archivo .crt en el directorio ssl del servidor y he intentado convertirlo a formato DER.
Actualización: He leído en algún sitio que Android requiere que los certificados estén en formato p12, así que he convertido el certificado de Apache2 a p12 usando el siguiente comando:
openssl pkcs12 -export -inkey server.key -in server.crt -out ~/server.p12
Luego repetí los pasos anteriores, obtuve el mismo mensaje de éxito, y luego procedí a seguir sin ver el certificado en las credenciales de usuario y sigo obteniendo el error de certificado no confiable desde el navegador del móvil.