Android mit eigenen SSL Zertifikaten (ROOT CA installieren)

Um selbst ausgestellte Zertifikate zu nutzen, ist ein manueller Import der eigenen ROOT CA in den Zertifikatsspeicher der Android Geräte erforderlich.
Android unterstützt DER codierte X.509 Zertifikate, die als Datei mit CRT- oder CER-Endung gespeichert werden.

24.11.2021 - LineageOS mit Android 17.1
26.10.2020 - Huawei MediaPad mit EMUI 9.1
26.10.2020 - Anleitung aktualisiert
10.05.2018 - LineageOS mit Android 7.1

Zertifikat exportieren

Mein lokales Zertifikatsmanagement verwalte ich mit XCA.
In XCA das Root Zertifikat unserer CA als DER mit Endung CRT exportieren und in Google Drive speichern.

Zertifikat importieren

Die Datei öffnen, mit dem Geräte PIN bestätigen, Namen vergeben und das Zertifikat mit OK installieren.

LineageOS

Das installierte Zertifikat findet man unter:
7.1 – Einstellungen → Sicherheit → Vertrauenswürdige Anmeldedaten → Nutzer
17.1 – Einstellungen → Sicherheit → Verschlüsselung und Anmeldedaten → Vertrauenswürdige Anmeldedaten  → Nutzer

EMUI

Das installierte Zertifikat findet man unter:
Einstellungen → Sicherheit & Datenschutz → Zusätzliche Einstellungen → Verschlüsselung und Anmeldedaten → Vertrauenswürdige Anmeldedaten → Nutzer

Ergebnis

Jetzt klappt’s auch mit den eigenen Zertifikaten ohne die nervige Fehlermeldung das es keine sichere Verbindung sei.

6 Gedanken zu „Android mit eigenen SSL Zertifikaten (ROOT CA installieren)“

  1. Ich habe diese Anleitung auf einem Handy mit LineageOS 17.1 probiert. Bie mir funktioniert der Import aber nur mit meinem abgelaufenen CA-Zertifikat. Wenn ich das gültige CA-Zertifikat benutze erscheint die Fehlermeldung ‘Für die Installation von Zertifikaten ist ein privater Schlüssel erforderlich’.

    Antworten
  2. Hatte das gleiche Problem.
    Es kann gelöst werden, indem man bei dem CSR (Request) der CA x509 in der Version 3 anfordert.

    Also über openssl nochmal einen csr anfordern über:
    openssl req -new -sha384 -key ca-key.pem -out ca_v3.csr -config ca.conf -extensions v3_req

    Dann ganz normal mit der CA signieren.

    In der ca.conf müsste das mit folgenden Angaben erweitert werden:
    [req]
    distinguished_name = req_distinguished_name
    req_extensions = v3_req
    prompt = no

    [req_distinguished_name]
    C = DE
    ST = NRW
    L = Beispiel
    O = Beispiel
    OU = Beispiel
    CN = Jantos Tls Ca v3

    [v3_req]
    basicConstraints = critical,CA:true

    Antworten

Schreibe einen Kommentar