web-dev-qa-db-fra.com

Où trouver le certificat installé par l'utilisateur Android 4.0 et plus

J'ai installé mon certificat (.crt) comme suit: Connecté l'appareil à mon ordinateur -> copié le certificat dans la mémoire de stockage interne -> sur l'appareil, allez dans les paramètres -> sécurité -> installer à partir de la mémoire -> et obtenu "installé avec succès" ou quelque chose (il m'a demandé de mettre un code PIN pour le périphérique).

Ensuite, j'ai essayé de le rechercher dans Paramètres-> Sécurité-> Identifiants de confiance et je ne pouvais pas le trouver dans les onglets Système ni Utilisateur ... (j'ai compris qu'il devrait être dans l'onglet Utilisateur, mais il est vide).

Je pense qu'il n'y a aucun problème dans le processus d'installation car il m'a demandé de mettre un code PIN (et ne m'a pas laissé l'annuler tant que je n'ai pas supprimé tous les certificats en cliquant sur "effacer les informations d'identification" dans le menu de sécurité).

Aider some1?

Merci!

23
krushi

Avait ce même problème aussi. Assurez-vous que le certificat que vous installez est bien un certificat d'autorité de certification et pas simplement un certificat x509. Malheureusement, le programme d'installation du certificat fourni avec ICS installera volontiers le certificat, même s'il ne s'agit pas d'un certificat d'autorité de certification. Cela induira en erreur que le certificat a été installé avec succès. Il mettra même le fichier sous/data/misc/keystore. Cependant, il ne donne à l'utilisateur aucune information indiquant qu'il ne peut pas vraiment utiliser ce certificat aux fins prévues. 

Pour le développement/les tests, voici un guide pratique sur la création de ce certificat de CA auto-signé: http://langui.sh/2009/18/openssl-self-signed-ca/

9
J. Carlos Navea

Après toutes les étapes (placez le fichier sous/data/misc/keystore et assurez-vous que le certificat est une autorité de certification), redémarrez votre appareil, le certificat doit apparaître. 

0
TimeWillTell

Cette réponse ici était un bon conseil, mais certains éléments de l'article lié étaient obsolètes en raison de modifications apportées par Chrome à l'acceptation d'un certificat approprié (nom du sujet, algorithme de synthèse).

Le tout est complet à compter d'aujourd'hui: Si vous avez un certificat de CA approprié, le message "comprend: ... 1 CA", s'il indique seulement un certificat, il s'installera sans agir en tant que CA.

Tout d'abord, créez 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

N'exécutez ces commandes que la première fois:

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

Maintenant, lancez-les pour chaque domaine:

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 est votre certificat de CA pouvant être installé sur le périphérique . $ {domain.cer} est votre certificat de site Web qui doit être approuvé une fois que root.pfx est installé.

0
Michael Ribbons

Depuis API 24 (Android 7.0), vous devez l'enregistrer. 

Réglage -> Sécurité -> Informations d'identification de l'utilisateur

où vous pouvez lister tous les certificats d'utilisateurs. Sous API 24, les paramètres ne permettent pas d'afficher les certificats utilisateur (PKCS12 avec clé privée). L'option la plus simple que j'ai vérifiée sur API 19 21 22 23 est d'installer un certificat. Une fois l'opération terminée, accédez au serveur qui requiert l'authentification bidirectionnelle SSL à l'aide de l'application Google Chrome. Google Chrome devrait vous montrer la liste des certificats installés. Si vous utilisez un appareil virtuel sans Google Chrome, vous pouvez le télécharger à partir de ce site. Après avoir téléchargé l'application glisser-déposer sur l'écran du périphérique virtuel.

0
macieg_b