it-swarm.com.de

Wo finde ich das vom Benutzer installierte Zertifikat für Android 4.0 oder höher?

Ich habe mein Zertifikat (.crt) wie folgt installiert: Das Gerät an meinen Computer angeschlossen -> das Zertifikat in den internen Speicher kopiert -> auf dem Gerät ging zu Einstellungen-> Sicherheit-> vom Speicher installieren -> und bekam "erfolgreich installiert" oder etwas (es bat mich, einen PIN-Code für das Gerät einzugeben).

Dann habe ich versucht, in Einstellungen-> Sicherheit-> Vertrauenswürdige Anmeldeinformationen nachzuschlagen und konnte es weder in den System- noch in den Benutzerregistern finden ...

Ich denke, es gibt kein Problem im Installationsprozess, da ich dazu aufgefordert wurde, den PIN-Code einzugeben (und mich nicht rückgängig machen ließ, bis ich alle Zertifikate durch Klicken auf "Berechtigungsnachweise löschen" aus dem Sicherheitsmenü entfernt habe).

Helfen Sie jemandem?

Vielen Dank!

23
krushi

Hatte das gleiche Problem auch. Stellen Sie sicher, dass das zu installierende Zertifikat tatsächlich ein CA-Zertifikat und nicht nur ein einfaches x509-Zertifikat ist. Leider wird das Zertifikatinstallationsprogramm, das mit ICS geliefert wird, das Zertifikat gerne installieren, auch wenn es kein CA-Zertifikat ist. Es wird irreführend gesagt, dass das Zertifikat erfolgreich installiert wurde. Die Datei wird sogar unter/data/misc/keystore abgelegt. Es gibt dem Benutzer jedoch keine Rückmeldung, dass er dieses Zertifikat nicht wirklich für den beabsichtigten Zweck verwenden kann. 

Hier finden Sie eine praktische Anleitung zum Erstellen dieses selbstsignierten CA-Zertifikats: http://langui.sh/2009/01/18/openssl-self-signed-ca/

9
J. Carlos Navea

Nach allen Schritten (legen Sie die Datei unter/data/misc/keystore ab und vergewissern Sie sich, dass es sich bei dem Zertifikat um eine Zertifizierungsstelle handelt), starten Sie Ihr Gerät neu und das Zertifikat sollte angezeigt werden. 

0
TimeWillTell

Diese Antwort hier war ein toller Tipp, aber einige Dinge in dem verlinkten Beitrag waren aufgrund von Änderungen in dem, was Chrome als ordnungsgemäßes Zertifikat akzeptiert, veraltet (Betreff alter Name, Digest-Algorithmus).

Hier ist es ab heute vollständig: Wenn Sie über ein ordnungsgemäßes Zertifizierungsstellenzertifikat verfügen, heißt es "umfasst: ... 1 Zertifizierungsstelle", wenn es nur ein Zertifikat angibt, wird es installiert, fungiert jedoch nicht als Zertifizierungsstelle.

Erstellen Sie zunächst myca.conf

[ ca ]
default_ca = myca

[ crl_ext ]
# issuerAltName=issuer:copy  #this would copy the issuer name to altname
authorityKeyIdentifier=keyid:always

[ myca ]
new_certs_dir = /tmp
unique_subject = no
certificate = root.cer
database = certindex
private_key = privkey.pem
serial = serialfile
default_days = 365
default_md = sha1
policy = myca_policy
x509_extensions = myca_extensions

[ myca_policy ]
commonName = supplied
stateOrProvinceName = supplied
countryName = supplied
emailAddress = optional
organizationName = supplied
organizationalUnitName = optional

[ myca_extensions ]
basicConstraints = CA:false
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
keyUsage = digitalSignature,keyEncipherment
extendedKeyUsage = serverAuth
crlDistributionPoints = URI:http://mp-test.com.au/myca.crl

subjectAltName = @alt_names

Führen Sie diese Befehle nur beim ersten Mal aus:

openssl req -newkey rsa:2048 -days 3650 -x509 -nodes -out root.cer
openssl pkcs12 -export -out root.pfx -inkey privkey.pem -in root.cer
cp privkey.pem root.pem
touch certindex
echo 01 > serialfile

Führen Sie diese jetzt für jede Domäne aus:

domain=www.example.org
openssl req -newkey rsa:2048 -days 3650 -x509 -nodes -out root.cer
openssl req -newkey rsa:2048 -nodes -out ${domain}.csr -keyout ${domain}.key
cat myca.conf > temp.conf
printf "[alt_names]\nDNS.1=${domain}\n" >> temp.conf
openssl ca -md sha512 -batch -config temp.conf -notext -in ${domain}.csr -out ${domain}.cer
openssl x509 -noout -text -in ${domain}.cer
openssl pkcs12 -export -out root.pfx -inkey privkey.pem -in root.cer

root.pfx ist Ihr CA-Zertifikat, das auf dem Gerät installiert werden kann . $ {domain.cer} ist Ihr Websitezertifikat, das nach der Installation von root.pfx vertrauenswürdig sein sollte.

0
Michael Ribbons

Seit API 24 (Android 7.0) müssen Sie es einchecken 

Einstellung -> Sicherheit -> Benutzeranmeldeinformationen

hier können Sie alle Benutzerzertifikate auflisten. Unter API 24 In den Einstellungen gibt es keine Option zum Anzeigen von Benutzerzertifikaten (PKCS12 mit privatem Schlüssel). Die einfachste Option, die ich bei API 19 21 22 23 überprüft habe, ist das Installationszertifikat. Nach Abschluss des Vorgangs gehen Sie zu dem Server, der Zweiwege-SSL-Authentifizierung mit der Anwendung Google Chrome erfordert . Google Chrome sollte Ihnen eine Liste der installierten Zertifikate anzeigen. Falls Sie Virtual Device ohne Google Chrome verwenden, können Sie es von this site herunterladen. Nachdem Sie die Anwendung per Drag & Drop auf dem Bildschirm des virtuellen Geräts heruntergeladen haben.

0
macieg_b