CA-Zertifikat installieren: Unterschied zwischen den Versionen

Aus MattWiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Android =
Quelle: http://wiki.cacert.org/FAQ/ImportRootCert#Android_Phones_.26_Tablets
Quelle: http://wiki.cacert.org/FAQ/ImportRootCert#Android_Phones_.26_Tablets


Zeile 8: Zeile 9:
Nutzerzertifikate können über den Menüpunkt "Von SD-Karte installieren" installiert werden. Sie setzen jedoch voraus, dass der Benutzer eine Displaysperre (Z.B. PIN, Passwort oder Muster) einsetzt.
Nutzerzertifikate können über den Menüpunkt "Von SD-Karte installieren" installiert werden. Sie setzen jedoch voraus, dass der Benutzer eine Displaysperre (Z.B. PIN, Passwort oder Muster) einsetzt.


Systemzertifikate können nur mit Root-Access installiert werden, funktionieren jedoch auch ohne Displaysperre.
Die Installation von Systemzertifikate setzt Root-Rechte auf dem Android-Gerät voraus. Systemzertifikate setzen jedoch keine Displaysperre voraus.


== Systemzertifikat installieren ==
== Installation eines CA-Zertifikats als Systemzertifikat ==
Voraussetzung sind Root-Rechte.


[[Kategorie:Android]]
=== Zertifikat vorbereiten ===
Zunächst wird vom CA-Zertifikat der Hash festgestellt:
openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1
Es wird der Parameter <code>-subject_hash_old</code> statt <code>-subject_hash</code> verwendet, um einen Hash-Wert zu erhalten, der auch noch zu OpenSSL 0.9 kompatibel ist.
 
An den angezeigten Hash-Wert wird <code>.0</code> angehängt. Dies wird dann als Dateiname für das Android-Zertifikat verwendet, z. B.:
cat cacert.pem > 12345678.0
openssl x509 -inform PEM -text -in root.crt -out /dev/null >> 5ed36f99.0
 
=== Zertifikat auf Android übertragen ===
Das CA-Zertifikat wird am einfachsten mit adb übertragen:
adb push 12345678.0 /sdcard/
 
=== Zertifikat auf Android installieren ===
 
su
 
Ordner <code>/system</code> ummounten, damit er writeable ist. Nach einem Neustart wird der Ausgangszustand automatisch wieder hergestellt:
 
mount -o remount,rw /system
 
Zertifikat an den korrekten Ort in Android kopieren:
 
cp /sdcard/12345678.0 /system/etc/security/cacerts/
 
Zugriffsrechte der Datei korrigieren auf u=rw, g=r, o=r:
 
cd /system/etc/security/cacerts/
chmod 644 12345678.0
 
Prüfung, ob die Dateien korrekte Rechte haben:
 
ls -al -Z
 
Parameter '-Z' kann weggelassen werden, wenn ein Android ohne SElinux verwendet wird. Es zeigt nur einige zusätzliche Sicherheitsparameter an.
 
Es sollte nun eine neue Datei sichtbar sein:
-rw-r--r-- root    root              u:object_r:system_file:s0 12345678.0
 
Die Zertifikate werden beim Reboot neu geladen. Daher Gerät neu starten:
 
reboot
[[Kategorie:Android]]
 
= Linux =
 
== Gnome ==
[[Kategorie:Kryptographie]]
[[Kategorie:Kryptographie]]
[[Kategorie:OpenSSL]]
CA-Zertifikat muss erst vom PEM-Format ins CRT-Format konvertiert werden:
openssl x509 -in foo.pem -inform PEM -out foo.crt
Danach Zertifikat ins lokale CA-Zertifizierungsstellen-Verzeichnis kopieren:
# cp foo.crt /usr/local/share/ca-certificates
Anschließend die Zertifikate neu einlesen:
# dpkg-reconfigure ca-certificates
Dabei werden (scheinbar?) Links für Zertifikate in <code>/usr/share/ca-certificates</code> und <code>/usr/local/share/ca-certificates</code> in <code>/etc/ssl/certs</code> erstellt.

Aktuelle Version vom 15. September 2017, 20:51 Uhr

Android

Quelle: http://wiki.cacert.org/FAQ/ImportRootCert#Android_Phones_.26_Tablets

Einleitung

In Android befinden sich die Zertifikate unter Einstellungen→Sicherheit→Vertrauenswürdige Anmeldedaten.

Ab Android 4.0 wird zwischen Systemzertifikaten und Nutzerzertifikaten unterschieden.

Nutzerzertifikate können über den Menüpunkt "Von SD-Karte installieren" installiert werden. Sie setzen jedoch voraus, dass der Benutzer eine Displaysperre (Z.B. PIN, Passwort oder Muster) einsetzt.

Die Installation von Systemzertifikate setzt Root-Rechte auf dem Android-Gerät voraus. Systemzertifikate setzen jedoch keine Displaysperre voraus.

Installation eines CA-Zertifikats als Systemzertifikat

Voraussetzung sind Root-Rechte.

Zertifikat vorbereiten

Zunächst wird vom CA-Zertifikat der Hash festgestellt:

openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1

Es wird der Parameter -subject_hash_old statt -subject_hash verwendet, um einen Hash-Wert zu erhalten, der auch noch zu OpenSSL 0.9 kompatibel ist.

An den angezeigten Hash-Wert wird .0 angehängt. Dies wird dann als Dateiname für das Android-Zertifikat verwendet, z. B.:

cat cacert.pem > 12345678.0
openssl x509 -inform PEM -text -in root.crt -out /dev/null >> 5ed36f99.0

Zertifikat auf Android übertragen

Das CA-Zertifikat wird am einfachsten mit adb übertragen:

adb push 12345678.0 /sdcard/

Zertifikat auf Android installieren

su

Ordner /system ummounten, damit er writeable ist. Nach einem Neustart wird der Ausgangszustand automatisch wieder hergestellt:

mount -o remount,rw /system

Zertifikat an den korrekten Ort in Android kopieren:

cp /sdcard/12345678.0 /system/etc/security/cacerts/

Zugriffsrechte der Datei korrigieren auf u=rw, g=r, o=r:

cd /system/etc/security/cacerts/
chmod 644 12345678.0

Prüfung, ob die Dateien korrekte Rechte haben:

ls -al -Z

Parameter '-Z' kann weggelassen werden, wenn ein Android ohne SElinux verwendet wird. Es zeigt nur einige zusätzliche Sicherheitsparameter an.

Es sollte nun eine neue Datei sichtbar sein:

-rw-r--r-- root     root              u:object_r:system_file:s0 12345678.0

Die Zertifikate werden beim Reboot neu geladen. Daher Gerät neu starten:

reboot

Linux

Gnome

CA-Zertifikat muss erst vom PEM-Format ins CRT-Format konvertiert werden:

openssl x509 -in foo.pem -inform PEM -out foo.crt

Danach Zertifikat ins lokale CA-Zertifizierungsstellen-Verzeichnis kopieren:

# cp foo.crt /usr/local/share/ca-certificates

Anschließend die Zertifikate neu einlesen:

# dpkg-reconfigure ca-certificates

Dabei werden (scheinbar?) Links für Zertifikate in /usr/share/ca-certificates und /usr/local/share/ca-certificates in /etc/ssl/certs erstellt.