No StackOverflow: como instalar um certificado CA confiável no dispositivo Android?
Passei muito tempo tentando encontrar uma resposta para isso (preciso do Android para ver os certificados StartSSL). Conclusão: o Android 2.1 e 2.2 permitem importar certificados, mas apenas para uso com WiFi e VPN. Não há interface com o usuário para atualizar a lista de certificados raiz confiáveis, mas há discussões sobre como adicionar esse recurso. Não está claro se existe uma solução confiável para atualizar e substituir manualmente o arquivo cacerts.bks.
Detalhes e links: http://www.mcbsys.com/techblog/2010/12/android-certificates/ . Nessa postagem, consulte o link para o bug 11231 do Android - você pode adicionar seu voto e consulta a esse bug.
11231 foi fechado em novembro de 2011 e o status foi Lançado para Android 4.0 ICS.
Aqui estão as notas associadas ao status Liberado :
O ICS tenta a maioria, se não todos, os itens desta edição. Se eu perdi alguma coisa, vou abrir questões mais específicas para resolver as lacunas.
Alguns detalhes abaixo, planejo um post mais formal mais tarde. Todos os itens a seguir devem estar visíveis no SDK do Android 4.0, se você quiser experimentá-los e fornecer feedback.
Alterações nas configurações:
- autoridades de certificação do sistema (CAs) agora estão visíveis em Configurações> Segurança> Credenciais Confiáveis.
- CAs do sistema agora podem ser desabilitadas e reativadas
- os usuários podem instalar suas próprias CAs em Configurações> Segurança (além de outros mecanismos, como por meio do navegador ou abertura do anexo de email).
- as CAs de usuário podem ser exibidas e excluídas em Configurações> Segurança> Credenciais confiáveis
- em vez de um PIN separado de 8 caracteres para armazenamento de credenciais, o acesso agora é controlado pela tela de bloqueio
Nova API KeyChain
- KeyChain.createInstallIntent permite que os aplicativos solicitem a instalação de credenciais, basicamente tornando pública a interface usada pelo Settings para solicitar a instalação. os usuários precisam confirmar as solicitações de instalação como antes.
- KeyChain.choosePrivateKeyAlias / getPrivateKey / getCertificateChain permite que aplicativos solicitem chaves privadas e seus certificados associados para uso do aplicativo. um caso de uso comum seria para autenticação de certificado de cliente com https.
O email
- O email agora usa a API KeyChain para permitir autenticação de certificado de cliente para contas do Exchange
Navegador
- O navegador agora usará o KeyChain para solicitar um certificado de cliente quando o servidor solicitar um para autenticação.
Em março de 2014, foi criada uma solicitação de aprimoramento Permitir que os usuários instalem certificados de CA próprios .
Muitos usuários (incluindo empresas) usam certificados autoassinados para SSL / TLS, porque não querem pagar por isso ou porque simplesmente não confiam em outras empresas e querem fazer por si mesmos (na verdade, não há razão para comprar um certificado quando não for necessário que usuários anônimos da Internet confiem no seu servidor).
No momento, é possível instalar um certificado CA personalizado no Android, mas é detectado como "certificado do usuário", que parece ser destinado a certificados do lado do cliente. Como resultado, esses certificados são mostrados como "certificados de usuário" na GUI e, desde o Android 4.4, uma terrível "Rede pode ser monitorada" foi implementada.