Como você importa certificados de CA para um telefone Android?


59

Quero conectar-me à rede sem fio da minha universidade usando o Nexus One. Quando vou para "Adicionar rede Wi-Fi" em Configurações sem fio, preenche o SSID da rede e seleciono 802.1x Enterprise como segurança e preencha tudo.

O problema é que a rede sem fio da nossa universidade usa o certificado CA Thawte Premium Server para certificação.

Quando clico na lista suspensa do certificado da CA, não recebo nada na lista (apenas N / A)

Agora eu tenho o certificado (Thawte Premium Server CA.pem) e o mudei para o meu cartão SD, mas não parece que o Android o detecte automaticamente.

Onde devo colocar o certificado para que o gerente sem fio do Android o reconheça. Em outras palavras, como posso importar um certificado CA para que o Android reconheça que está no telefone e o exiba na lista suspensa Certificado CA.

Obrigado por qualquer ajuda,

Tomek

PS Meu telefone não está enraizado

EDIT : Após fazer algumas pesquisas, parece que você pode instalar certificados, vá para as configurações do seu telefone> Localização e segurança> Instalar a partir do cartão SD

Infelizmente, parece que a única extensão de arquivo aceita é .p12. Parece que não há uma maneira de importar arquivos .cer ou .pem (que são os únicos dois arquivos fornecidos com os certificados Thawte) neste momento.

Parece que você pode usar um conversor para converter seus arquivos .cer ou .pem em .p12, no entanto, é necessário um arquivo-chave.

https://www.sslshopper.com/ssl-converter.html

Não sei onde obter esse arquivo de chave para os certificados Thawte.


11
Eu gostaria que isso não fosse revelado. Foi muito útil para mim. Obrigado a todos nesta página.
Ricket

um certificado .crt também funciona bem
Deite Ryan

11
Em um dispositivo HTC com Android 2.3.5, tive que alterar a extensão do arquivo de .pempara .crt. Depois disso, eu realmente consegui localizá-lo na Install from SD cardopção nas configurações de segurança . Pode ser colocado na raiz do cartão SD ou na Downloadspasta
JJD

O Openssl também deve poder converter entre vários formatos de certificado.
snaut

Respostas:


16

Eu usei o Android Certificate Installer da RealmB com grande sucesso. Você simplesmente carrega o arquivo codificado em PEM (.cer ou .pem) e aponta o navegador do telefone para o link fornecido. Não há necessidade de uma chave privada.


O próprio site informa se o upload é ou não um certificado válido. Deu-me um erro de certificado inválido. Carreguei o arquivo com as permissões de arquivo corretas na minha máquina Linux e funcionou muito bem.
so_mv

11
As possíveis implicações de segurança desse site devem ser apontadas junto com o link (ou, cite o próprio site: como está a segurança? - Ruim, você só deve enviar arquivos que, na sua opinião, possam ser visualizados publicamente sem efeitos colaterais ).
usar o seguinte

Isso não funciona mais :( Falha no upload
Vitas

6

Primeiro: o Android entende apenas o formato binário da CA e apenas com o formato de arquivo * .crt.
Segundo: o Android entende apenas os certificados de usuário no formato de arquivo * .p12.

Assim, você pode verificar se o seu arquivo CA é binário ou texto muito simples: abra-o com qualquer editor de texto ^

Se houver algo parecido 0‚ i0‚ Т , então é binário.

Se você vir algo como

Certificado: Dados: Versão: 3 (0x2) Número de série: 96: 0e: 45: 58: 68: 9a: bf: 00 Algoritmo de assinatura: sha1WithRSAEncryption Issuer: C = UA, ST =

Então é texto. É muito simples convertê-lo em binário sozinho em * nix:

openssl x509 -inform PEM -outform DER -in CA.pem -out CA.crt

Ou apenas pergunte ao administrador do sistema.

Copie o CA.crt e o usercert.p12 para o seu cartão SD ou envie-o por email (se você tiver um cliente de email configurado no Android, os anexos geralmente baixados serão armazenados na pasta Download, na verdade isso não importa).

Vá para Segurança e encontre a opção algo como isto: instale o certificado do seu cartão SD

Primeiro instale o CA.crt, depois usercert.p12

Vá para wifi e faça uma nova conexão, escolha 802.1x EAP, seja qual for, e selecione seus certificados para CA CA.crt e certificado de usuário usercert.p12. No meu caso, também digitei o nome de usuário.


2
Para quem quer que isso ajude no futuro: não tive problema em instalar um certificado de formato de texto em um SGS4 - mas somente depois de movê-lo para a pasta Downloads ( Meus Documentos não serviria) e também apenas com a opção indicada no pergunta, não abrindo o arquivo CRT em um gerenciador de arquivos, onde o Android alegou que o tipo de arquivo era desconhecido (ao contrário do Nexus 7, onde funcionava assim).
OU Mapper

Eu tive que usar o certificado raiz, não o certificado do site quando salvo no Chrome. Em uma página do Chrome: F12 (console de desenvolvedor), guia Segurança, Exibir certificado, guia Caminho de certificação, clique no nó raiz da parte superior, Ver certificado, guia Detalhes, botão "Copiar para arquivo ...", escolha o formato DER. Abrindo a partir do Google Drive, deixe-me instalar o certificado. Verifique se ele aparece no telefone em Configurações, Segurança, Credenciais confiáveis, Usuário.
Curtis Yallop


5

Para outras pessoas que procuram essa resposta, que não podem usar a solução da realmB porque não conseguem acessar a Internet pelo telefone.
Acabei de alterar a extensão dos meus certificados de .cerpara .crte tudo funcionou bem! Obrigado aos usuários deste segmento xda pela solução.


0

Essa é exatamente a solução. O Android aceita apenas certificado no "modo binário". Se você possui um certificado no modo Texto, que é o formato de certificado mais comum, converta-o simplesmente no formato "DER Binário". Depois disso, envie o certificado para a "pasta de download do dispositivo Android e use o menu" Instalar do cartão SD "" para instalar o certificado.

Funciona para Samsung Galaxy, telefone Sony Xperia e HTC Phone funciona para Android versão 3.xe versão 4.x

Olivier


0

Como você importa certificados de CA para um telefone Android?

A documentação oficial do Android pode ser encontrada em Trabalhar com certificados . Observe que o certificado deve ser codificado em ASN.1 / DER. Quando a codificação estiver correta, verifique se a extensão é CRT ou CER. Se não estiver (como você o nomeou ca-cert.der), renomeie-o (para ca-cert.crt).

Se você tiver um certificado codificado PEM, converta-o para codificação ASN.1 / DER usando (de acordo com as instruções de Dimtry):

openssl x509 -in ca-cert.pem -inform PEM -outform DER -out ca-cert.crt

Se estiver interessado, o Trust Store do sistema é gravado na ROM, portanto você não pode modificá-lo. Quando você modifica o Trust Store, na verdade você está aprimorando /data/misc/keychaine um dos dois arquivos: cacerts-addede cacerts-removed. Veja a implementação do ICS Trust Store de Nikolay Elenkov .


0

Consegui conectar-me à minha rede universitária seguindo as próximas etapas:

  1. Perguntei à universidade sobre o certificado de uso, no meu caso DigicertCA.
  2. Pesquise no Google, faça o download (salvei na minha conta do Dropbox), salve-o na pasta Download no telefone (no meu caso, Samsung Galaxy S8).
  3. No telefone: vá para Configurações-> Tela de bloqueio e Segurança-> Outras configurações de segurança-> Instalar do armazenamento do dispositivo (Instalar certificado do armazenamento) - se o certificado for baixado no telefone (pasta Downloads, no meu caso, é reconhecida e aparece para seleção).
  4. Reinicie o telefone.
  5. Ao configurar a rede, no certificado da CA, selecione Don't validate after installed on phone.

No meu caso, funcionou, espero que ajude.


-1

Você pode acessar o seu cer / pem a partir do cartão SD com o tipo MIME correto a ser instalado usando o TJWS (edição Android), para que você não precise fazer o upload do seu certificado para algum site.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.