Jak importować certyfikaty CA na telefon z Androidem?

59

Chcę połączyć się z siecią bezprzewodową mojego uniwersytetu za pomocą Nexusa One. Kiedy przechodzę do „Dodaj sieć Wi-Fi” w Ustawieniach sieci bezprzewodowej, wypełniam SSID sieci i wybieram 802.1x Enterprise dla bezpieczeństwa i wypełniam wszystko.

Problem polega na tym, że sieć bezprzewodowa naszej uczelni używa certyfikatu Thawte Premium Server CA do certyfikacji.

Kiedy klikam listę rozwijaną dla certyfikatu CA, nie widzę nic na liście (tylko nie dotyczy)

Teraz mam certyfikat (Thawte Premium Server CA.pem) i przeniosłem go na kartę SD, ale nie wygląda na to, że Android automatycznie go wykrywa.

Gdzie powinienem umieścić certyfikat, aby menedżer sieci bezprzewodowej Android go rozpoznał. Innymi słowy, w jaki sposób mogę zaimportować certyfikat CA, aby Android rozpoznał go w telefonie i wyświetlił go na liście rozwijanej Certyfikat CA.

Dziękuję za wszelką pomoc,

Tomek

PS Mój telefon nie jest zrootowany

EDYCJA : Po przeprowadzeniu badań wygląda na to, że możesz zainstalować certyfikaty, przechodząc do ustawień telefonu> Lokalizacja i zabezpieczenia> Instaluj z karty SD

Niestety wygląda na to, że jedynym akceptowanym rozszerzeniem pliku jest .p12. Nie wygląda na to, że istnieje sposób na importowanie plików .cer lub .pem (które są jedynymi dwoma plikami, które są dostarczane z certyfikatami Thawte) w tym momencie.

Wygląda na to, że możesz użyć konwertera do konwersji plików .cer lub .pem do .p12, jednak potrzebny jest plik klucza.

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

Nie wiem, skąd wziąć ten plik klucza dla certyfikatów Thawte.

Lie Ryan
źródło
1
Chciałbym, żeby to zostało zamknięte. To było dla mnie najbardziej pomocne. Dziękuję wszystkim na tej stronie.
Ricket
certyfikat .crt również działa dobrze
Lie Ryan,
1
Na urządzeniu HTC z Androidem 2.3.5 musiałem zmienić rozszerzenie pliku z .pemna .crt. Po tym mogłem faktycznie zlokalizować go z Install from SD cardopcji w ustawieniach zabezpieczeń . Można go umieścić w katalogu głównym karty SD lub w Downloadsfolderze.
JJD,
Openssl powinien także móc konwertować różne formaty certyfikatów.
snaut

Odpowiedzi:

16

Użyłem Android Installer RealmB Świadectwem do wielkiego sukcesu. Wystarczy załadować plik zakodowany w formacie PEM (.cer lub .pem), a następnie skierować przeglądarkę telefonu na podany link. Nie potrzebujesz klucza prywatnego.

AdamP
źródło
Ta strona sama informuje, czy przesłany plik jest ważnym certyfikatem, czy nie. Dał mi błąd nieprawidłowego certyfikatu. Przesłałem ten z odpowiednimi uprawnieniami do plików na moją maszynę z linuksem i działał świetnie.
so_mv,
1
Możliwy wpływ tej witryny na bezpieczeństwo powinien zostać wskazany wraz z linkiem (lub zacytuj samą witrynę: Jaka jest ochrona? - Źle, powinieneś przesyłać tylko te pliki, które Twoim zdaniem mogą być publicznie przeglądane bez żadnych skutków ubocznych. ).
LUB Mapper
To już nie działa :( Przesyłanie nie powiodło się
Vitas
6

Po pierwsze: Android rozumie tylko binarny format CA i tylko w formacie pliku * .crt.
Po drugie: system Android obsługuje tylko certyfikaty użytkownika w formacie pliku * .p12.

Możesz więc sprawdzić, czy plik binarny lub tekst w pliku CA jest bardzo prosty: otwórz go w dowolnym edytorze tekstu ^

Jeśli coś takiego 0‚ i0‚ Т , to jest binarne.

Jeśli zobaczysz coś takiego

Certyfikat: Dane: Wersja: 3 (0x2) Numer seryjny: 96: 0e: 45: 58: 68: 9a: bf: 00 Algorytm podpisu: sha1WithRSAE Szyfrowanie Wystawca: C = UA, ST =

To jest tekst. Bardzo łatwo jest przekonwertować go na plik binarny w * nix:

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

Lub po prostu zapytaj administratora systemu.

Skopiuj zarówno CA.crt, jak i usercert.p12 na kartę SD lub wyślij go pocztą e-mail (jeśli masz klienta poczty e-mail skonfigurowanego na Androida, zwykle pobrane załączniki są przechowywane w folderze pobierania, w rzeczywistości nie ma to znaczenia).

Przejdź do Bezpieczeństwo i znajdź opcję coś takiego: zainstaluj certyfikat z karty SD

Najpierw zainstaluj CA.crt, a następnie usercert.p12

Przejdź do Wi-Fi i nawiąż nowe połączenie, wybierz 802.1x EAP cokolwiek i wybierz swoje certyfikaty dla CA CA.crt i dla certyfikatu użytkownika usercert.p12 w moim przypadku również wpisałem nazwę użytkownika.

Dmitry
źródło
2
Komukolwiek to może pomóc w przyszłości: nie miałem problemu z instalacją certyfikatu formatu tekstowego na SGS4 - ale dopiero po przeniesieniu go do folderu Pobrane ( Moje Dokumenty nie zrobiłyby), a także tylko z opcją wskazaną w pytanie, a nie otwarcie pliku CRT z menedżera plików, w którym Android stwierdził, że typ pliku jest nieznany (w przeciwieństwie do Nexusa 7, gdzie tak działał).
LUB Mapper
Musiałem użyć certyfikatu głównego, a nie certyfikatu witryny, gdy zapisano go w Chrome. Ze strony chrome: F12 (konsola programisty), karta Bezpieczeństwo, widok certyfikatu, karta Ścieżka certyfikacji, kliknij najwyższy węzeł główny, zobacz certyfikat, karta Szczegóły, przycisk „Kopiuj do pliku ...”, wybierz format DER. Otwarcie z dysku Google pozwala zainstalować certyfikat. Sprawdź, czy pojawia się na telefonie w Ustawieniach, Zabezpieczeniach, Zaufanych poświadczeniach, Użytkownik.
Curtis Yallop,
5

Dla innych osób szukających tej odpowiedzi, którzy nie mogą skorzystać z rozwiązania RealmB, ponieważ nie mają dostępu do Internetu na swoim telefonie.
Właśnie zmieniłem rozszerzenie pliku z moich certyfikatów .cerna .crti wszystko działało dobrze! Dzięki użytkownikom tego wątku xda za rozwiązanie.

GIWonder73
źródło
0

To jest dokładnie rozwiązanie. Android akceptuje tylko certyfikaty w „trybie binarnym”. Jeśli masz certyfikat w trybie tekstowym, który jest najpopularniejszym formatem certyfikatu, przekonwertuj go po prostu w formacie „DER Binary”. Następnie wepchnij certyfikat do „folderu pobierania urządzenia z Androidem i użyj menu„ Zainstaluj z karty SD ”, aby zainstalować certyfikat.

Działa z telefonami Samsung Galaxy, Sony Xperia, HTC Phone Działa z systemem Android w wersji 3.xi 4.x

Olivier

Olivier Paudex
źródło
0

Jak importować certyfikaty CA na telefon z Androidem?

Oficjalną dokumentację Androida można znaleźć na stronie Praca z certyfikatami . Pamiętaj, że certyfikat musi być zakodowany w ASN.1 / DER. Po prawidłowym kodowaniu upewnij się, że rozszerzenie to CRT lub CER. Jeśli nie jest (tak jak go nazwałeś ca-cert.der), zmień jego nazwę (na ca-cert.crt).

Jeśli masz certyfikat zakodowany w formacie PEM, przekonwertuj go na kodowanie ASN.1 / DER, używając (zgodnie z instrukcjami Dimtry):

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

W razie zainteresowania system Trust Store zostaje wypalony na ROM, więc tak naprawdę nie można go modyfikować. Kiedy modyfikujesz Trust Store, faktycznie poprawiasz /data/misc/keychainjeden z dwóch plików: cacerts-addedi cacerts-removed. Zobacz implementację ICS Trust Store firmy Nikolay Elenkov .

jww
źródło
0

Udało mi się połączyć z siecią uniwersytetów, wykonując następujące kroki:

  1. Zapytał uniwersytet o certyfikat, że jest używany, w moim przypadku DigicertCA.
  2. Google go, pobierz go (mam go zapisane na moim koncie Dropbox), zapisz w folderze Pobierz w telefonie (w moim przypadku Samsung Galaxy S8).
  3. Na telefonie: przejdź do Ustawienia-> Ekran blokady i zabezpieczenia-> Inne ustawienia zabezpieczeń-> Zainstaluj z pamięci urządzenia (Zainstaluj certyfikat z pamięci) - jeśli certyfikat jest pobrany na telefon (folder Pobrane w moim przypadku jest rozpoznawany i wyświetlany wybór).
  4. Uruchom ponownie telefon.
  5. Podczas konfigurowania sieci w certyfikacie CA wybierz Don't validate after installed on phone.

W moim przypadku zadziałało, mam nadzieję, że to pomoże.

Bogdan
źródło
-1

Dostęp do cer / pem można uzyskać z karty SD z prawidłowym typem MIME do zainstalowania za pomocą TJWS (edycja Android), więc nie trzeba przesyłać certyfikatu na jakąś stronę internetową.

Dmitriy
źródło