česky | english
Jak importovat kořenový certifikát CAcert do starší verze Androidu před 'Ice Cream Sandwich' ('Gingerbread', 'Froyo', ...
Před Androidem verze 4.0 (zvané "ICS", "Ice Cream Sandwich") existoval jediný soubor, určený jen pro čtení (read-only): /system/etc/security/cacerts.bks obsahující důvěryhodné úložiště s certifikáty všech CA, kterým Android standardně důvěřuje. Používaly ho jak systémové aplikace, tak aplikace vyvíjené nástrojem Android SDK (Software Development Kit).
Způsob 1: Android verze 4.0 a vyšší
Viz hlavní článek o importu kořenových certifikátů CAcert do Androidu - Import kořenových certifikátů
Způsob 2: Android SDK
Předpoklady:
- Na telefonu
- Přístup správce (Root)
- Na počítači
- Java 1.6
- Android SDK
- Přístup správce (Root/Administrator), nebo znalost úpravy CLASSPATH
Krok 1: Získat potřebné soubory
Stáhnout http://bouncycastle.org/download/bcprov-jdk16-141.jar a umístit do adresáře $JAVA_HOME/jre/lib/ext/
Stáhnout http://www.cacert.org/certs/root_X0F.crt do Vašeho pracovního adresáře
Volitelně: Stáhnout http://www.cacert.org/certs/class3_x14E228.crt do Vašeho pracovního adresáře
Krok 2: Zavést cacerts.bks z telefonu
$ adb pull /system/etc/security/cacerts.bks cacerts.bks 407 KB/s (51899 bytes in 0.124s)
(Velikost souboru a přenosová rychlost se mohou lišit)
Krok 3: Importovat kořenové certifikáty CAcert do cacerts.bks
$ keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias CACERT -file root_X0F.crt Owner: EMAILADDRESS=support@cacert.org, CN=CA Cert Signing Authority, OU=http://www.cacert.org, O=Root CA Issuer: EMAILADDRESS=support@cacert.org, CN=CA Cert Signing Authority, OU=http://www.cacert.org, O=Root CA Serial number: 0 Valid from: Sun Mar 30 09:29:49 GMT-03:00 2003 until: Tue Mar 29 09:29:49 GMT-03:00 2033 Certificate fingerprints: /!\ MD5: A6:1B:37:5E:39:0D:9C:36:54:EE:BD:20:31:46:1F:6B /!\ NAHRAZENO SHA256: + <"otisk prstu"> SHA1: dd:fc:da:54:1e:75:77:ad:dc:a8:7e:88:27:a9:8a:50:60:32:52:a5 Signature algorithm name: SHA256RSA Version: 3 Extensions: #1: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:2147483647 ] #2: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 16 B5 32 1B D4 C7 F3 E0 E6 8E F3 BD D2 B0 3A EE ..2...........:. 0010: B2 39 18 D1 .9.. ] ] #3: ObjectId: 2.16.840.1.113730.1.8 Criticality=false #4: ObjectId: 2.16.840.1.113730.1.4 Criticality=false #5: ObjectId: 2.5.29.31 Criticality=false CRLDistributionPoints [ [DistributionPoint: [URIName: https://www.cacert.org/revoke.crl] ]] #6: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 16 B5 32 1B D4 C7 F3 E0 E6 8E F3 BD D2 B0 3A EE ..2...........:. 0010: B2 39 18 D1 .9.. ] [EMAILADDRESS=support@cacert.org, CN=CA Cert Signing Authority, OU=http://www.cacert.org, O=Root CA] SerialNumber: [ 00] ] #7: ObjectId: 2.16.840.1.113730.1.13 Criticality=false Trust this certificate? [no]: yes Certificate was added to keystore
Krok 4: Ověřit úspěšnost importu
$ keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -v -list| grep -i cacert Alias name: CACERT Owner: O=Root CA,OU=http://www.cacert.org,CN=CA Cert Signing Authority,E=support@cacert.org Issuer: O=Root CA,OU=http://www.cacert.org,CN=CA Cert Signing Authority,E=support@cacert.org
Volitelně: Opakujte kroky 3 a 4 pro class3_x14E228.crt, použijte -alias CACERT3. Při ověření by se měly vypsat oba certifikáty.
Krok 5: Zavést doplněný soubor cacerts.bks zpět do telefonu
Pro zápis do systémového oddílu telefonu (/system) ho musíte připojit s právy čtení a zápisu (read-write).
# remount /system read-write $ adb shell mount -o remount,rw /system
Pokud tento příkaz u Vašeho telefonu nefunguje, použijte příkaz mount ke zjištění, jak je /system připojen. Například u telefonu Samsung Galaxy S zjistíte systém souborů rfs a funguje zde syntaxe
mount -o rw,remount -t rfs /dev/block/stl9 /system
# nahrejte nový soubor s certifikáty $ adb push cacerts.bks /system/etc/security/ 780 KB/s (53788 bytes in 0.067s) # remount /system read-only $ adb shell mount -o remount,ro /system ## Samsung Galaxy: mount -o ro,remount -t rfs /dev/block/stl9 /system
Krok 6: Rebootovat telefon
Reboot zajistí, že se zavede nový seznam certifikátů.
Zkuste https://www.cacert.org (výstraha by měla zmizet)
Způsob 3: Android Terminal Emulator
Předpoklady:
- Na telefonu
- Přístup správce (Root)
Krok 1: Získat potřebné soubory
Stáhnout http://bouncycastle.org/download/bcprov-jdk16-141.jar a umístit do adresáře $JAVA_HOME/jre/lib/ext/
Stáhnout http://www.cacert.org/certs/root_X0F.crt do Vašeho pracovního adresáře
Volitelně: Stáhnout http://www.cacert.org/certs/class3_x14E228.crt do Vašeho pracovního adresáře
Krok 2: Zavést cacerts.bks z telefonu
Zkopírujte soubor do svého počítače:
cp /system/etc/security/cacerts.bks /sdcard/ 407 KB/s (51899 bytes in 0.124s)
Krok 3: Importovat kořenové certifikáty CAcert do souboru cacerts.bks
Stejné jako u způsobu 1.
Krok 4: Zavést cacerts.bks do telefonu
Zavést doplněný soubor cacerts.bks zpět do telefonu. Proveďte příkazy uvedené dříve v Kroku 4 přímo ve svém terminálovém emulátoru Androidu. (Tak jak uvedeno výše, zjistěte, jak je oddíl /system připojen.)
mount -o remount,rw /system ## nebo na Galaxy S se systémem souborů rfs: mount -o rw,remount -t rfs /dev/block/stl9 /system ## zaveďte nový soubor certifikátů: cp /sdcard/cacerts.bks /system/etc/security/ 780 KB/s (53788 bytes in 0.067s) # připojte /system opět jako read-only mount -o remount,ro /system ## nebo: mount -o ro,remount -t rfs /dev/block/stl9 /system
Krok 5: Rebootovat telefon
Viz způsob 1!
Jak-na-to v němčině
Jiný způsob je publikován v němčině: CAcertImportFürAndroidImport a