Próbuję zainstalować samopodpisany certyfikat dla mojego serwera internetowego w systemie Android 4.3. Mam plik .crt w katalogu głównym karty SD (który jest w rzeczywistości emulowany, ponieważ nie mam karty SD w gnieździe).
Aby zainstalować certyfikat, przejdź do Ustawienia -> Ogólne -> Bezpieczeństwo -> Pamięć poświadczeń -> Zainstaluj z pamięci urządzenia.
Dostaję okno dialogowe z nazwą certyfikatu (nazwa pliku minus rozszerzenie .crt), którą mogę modyfikować (ale nie zmieniam), „używane do” rozwijania z zaznaczoną „VPN i aplikacje” i tekstem na dole okna dialogowego informującego „Pakiet zawiera: jeden certyfikat użytkownika”. Wszystko wygląda dobrze, więc klikam „Ok”. Okno dialogowe zniknie i pojawi się komunikat „Toast” z zainstalowanym „[name]”.
Jeśli jednak od razu przejdę do „Zaufanych danych logowania i wybiorę„ Użytkownika ”, nic tam nie ma! Nowy certyfikat również nie znajduje się w„ Systemie ”, ale nie spodziewałbym się tego. Jeśli przejdę do przeglądarki i spróbuję przejść do mojego strony internetowej, wciąż pojawia się ostrzeżenie, że certyfikat tej witryny nie jest zaufany. Próbowałem też zrestartować komputer, ale to nie robi różnicy.
Co ja robię źle? Całkowity brak komunikatów o błędach nie jest pomocny. Czy to możliwe, że mój certyfikat ma niewłaściwy format? Próbowałem użyć pliku .crt w katalogu ssl serwera i próbowałem przekonwertować go do formatu DER.
Aktualizacja: przeczytałem gdzieś, że Android wymaga certyfikatów w formacie p12, więc przekonwertowałem certyfikat Apache2 na p12 za pomocą następującego polecenia:
openssl pkcs12 -export -inkey server.key -in server.crt -out ~/server.p12
Następnie powtórzyłem powyższe kroki, otrzymałem ten sam komunikat o powodzeniu, a następnie nadal nie widziałem certyfikatu w poświadczeniach użytkownika i nadal otrzymuję błąd niezaufanego certyfikatu z przeglądarki mobilnej.
źródło