Como instalo um certificado de usuário?

21

Eu tenho meu próprio certificado raiz que assina certificados de usuário.

Eu tenho um site que só permitirá a você um certificado de usuário assinado pela raiz ca.

Consegui fazer com que este site funcionasse no Ios e no Windows, mas não consigo fazê-lo funcionar no Android (4.2.2)

Eu tentei muitos métodos diferentes de importar o certificado, incluindo a conversão entre formatos - chego ao ponto de ser reconhecido e "instalado", mas ele nunca parece ser instalado ou visível em qualquer lugar (verificado em credenciais confiáveis> usuário).

Eu li aqui e as únicas soluções parecem envolver o download / modificação de arquivos, o reenvio e a reinicialização - ou o firmware modificado / similar ... Eu realmente quero uma maneira suportada de fazer isso e realmente não quero considerar um hack pois preciso de uma solução escalável.

William Hilsum
fonte
Bem-vindo aos entusiastas do Android! Você já teve a chance de ver Como instalar um certificado da web em um dispositivo Android ? Embora a pergunta seja antiga, a resposta principal ainda é válida para o Android 4.4.
dotVezz
Olá, Sim, eu fiz ... em um dispositivo HTC, ele pergunta se eu quero usá-lo como um "certificado VPN ou (não me lembro)" ou "Certificado sem fio", depois diz que está instalado, mas não faz nada .. .. Em um telefone Samsung, não tenho opções após a instalação / dizendo que foi instalado e, novamente, nada acontece.
William Hilsum
@dotVezz Essa pergunta é sobre a instalação de um certificado de servidor da web. Hilsum está perguntando sobre o uso de um certificado de cliente para se autenticar em um servidor.
precisa
O que acontece quando você tenta visitar o site? No Chrome> = 27.0.1453.49, ele deve solicitar que você selecione o certificado quando o servidor da Web solicitar esse método de autenticação. O Firefox não suporta isso.
precisa
1
@ Dave Você precisa fazer uma nova pergunta para ver se alguém sabe. Adicionar uma pergunta nos comentários significa que a maioria das pessoas que podem responder não a verá.
Dan Hulme

Respostas:

2

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.

Ryan Conrad
fonte
4
Esta é uma ótima resposta, mas para a pergunta errada. A pergunta pergunta como instalar um certificado de cliente para autenticação de certificado de cliente (raro para sites). Esta resposta explica como instalar uma nova CA raiz, que é diferente.
Jtolds # 15/15
2

Vá para Configurações> Segurança> Armazenamento de credenciais> Instalar a partir do cartão SD. Se não estiver lá, você pode precisar de uma versão mais recente do Android ou de uma solução alternativa que eu não conheço.

simplegamer
fonte
0

Você pode instalar o certificado raiz fornecido pelo site no Android. Vá para a configuração no seu telefone Android, toque em instalar credenciais do cartão SD.

Certifique-se de baixar o certificado no seu cartão SD

Furquan
fonte
1
Estamos procurando respostas que expliquem as coisas completamente. Você poderia expandir um pouco sua resposta?
Dan Hulme