Wenn man Root hat ist es möglich eigene Root Zertifikate in Android einzutragen. Am Beispiel von CAcert zeige ich wie es funktioniert.
Voraussetzungen
Man benötigt für diese Modifikation Root Zugriff auf seinem Smartphone. Das Verzeichnis in das die Zertifikate installiert werden müssen ist für normale Nutzer nicht schreibbar. Wer das nicht hat muss sich damit begnügen die Zertifikate in den User-Store hinzuzufügen. Das geht recht schmerzfrei, erzwingt aber einen gesicherten Lockscreen und liefert bei jedem Start eine unschöne Warnmeldung.
Und natürlich braucht man auch die Root Zertifikate die man hinzufügen will. In meinem Fall liegen die im PEM Format vor.
1 2 |
wget https://www.cacert.org/certs/root.crt wget https://www.cacert.org/certs/class3.crt |
Für die Vorbereitung der Zertifikate braucht es noch etwas Unterstützung durch OpenSSL.
Hash berechnen und Zertifikat vorbereiten
Für Android braucht man einen openssl 0.9 kompatiblen Hash. Folgender Aufruf berechnet den Hash und zeigt auch nur diesen an.
1 2 |
openssl x509 -inform PEM -subject_hash_old -in root.crt | head -1 openssl x509 -inform PEM -subject_hash_old -in class3.crt | head -1 |
Die Datei mir dem Zertifikat bekommt nun diesen Hash als Namen mit einem „.0“ am Ende. Dann wird noch der Inhalt des Zertifikats lesbar angehängt.
1 2 3 4 |
mv root.crt 5ed36f99.0 openssl x509 -inform PEM -text -in 5ed36f99.0 -out /dev/null >> 5ed36f99.0 mv class3.crt e5662767.0 openssl x509 -inform PEM -text -in e5662767.0 -out /dev/null >> e5662767.0 |
Damit ist jetzt alles bereit die Root Zertifikate in Android einzutragen.
Root Zertifikat in Android eintragen
Das Smartphone schließe ich über USB an, ADB ist bei mir eingerichtet und verfügbar. Zuerst kopiere ich die Dateien auf die SD-Card:
1 2 |
adb push 5ed36f99.0 /sdcard/ adb push e5662767.0 /sdcard/ |
Dann logge ich mich mit adb shell auf dem Smartphone ein, mache den Systemspeicher schreibbar und füge die Root Zertifikate hinzu.
1 2 3 4 5 6 7 8 |
su mount -o remount,rw /system mv /sdcard/5ed36f99.0 /system/etc/security/cacerts/ chmod 644 /system/etc/security/cacerts/5ed36f99.0 mv /sdcard/e5662767.0 /system/etc/security/cacerts/ chmod 644 /system/etc/security/cacerts/e5662767.0 mount -o remount,ro /system reboot |
Der Test
Nach dem Reboot sind die Zertifikate aktiv und im Einstellungsmenü bei den System Zertifikaten gelistet.
Pingback: Auf Nexus Gerät Android updaten • Technology BlogTechnology Blog