Je voulais simplement ajouter une réponse qui est une variante de celle de guttermonk pour un cas d'utilisation particulier : installer un certificat sur une instance Bluestacks. Au moment de l'écriture, l'application de configuration de Bluestacks a été modifiée de sorte qu'il est impossible de définir un code PIN ou un mot de passe, et donc impossible d'ajouter un certificat utilisateur. Mais nous pouvons obtenir un certificat racine dans le système avec l'approche de guttermonk ainsi que quelques autres étapes. J'ai pu installer un certificat sans code PIN ni mot de passe et sans jamais l'installer dans le magasin de certificats de l'utilisateur.
Prérequis :
- Privilèges root sur l'instance Bluestacks
- openssl (sur l'hôte, par exemple tel que fourni avec Git Bash)
- Une application de terminal dans Bluestacks (par exemple, Termux)
Dans mon cas, j'avais téléchargé le fichier de certificat à l'intérieur de Bluestacks et je n'avais pas openssl disponible là-bas. Nous pouvons copier le fichier dans le répertoire partagé avec Windows :
cp /sdcard/Download/mycert.cer /sdcard/windows/BstSharedFolder
Sous Windows, nous pouvons utiliser openssl pour obtenir le hachage du certificat (je suppose que c'est ce que c'est).
cd C:\ProgramData\BlueStacks\Engine\UserData\SharedFolder # dans CMD
cd /c/ProgramData/BlueStacks/Engine/UserData/SharedFolder # dans Bash
openssl x509 -inform PEM -subject_hash_old -in mycert.cer | head -1
# par exemple abcd1234
De retour sur Android, nous pouvons rendre la partition système inscriptible, copier le certificat dans le répertoire des certificats système, et corriger ses permissions et sa propriété. Remonter la partition système en lecture seule par la suite, pour des raisons de sécurité.
mount -o rw,remount /system
cd /system/etc/security/cacerts/
cp /sdcard/Download/mycert.cer ./abcd1234.0
chmod 644 abcd1234.0
chown system:system abcd1234.0
mount -o ro,remount /system
1 votes
Je vais accepter une solution qui installe directement le certificat dans le système, contournant ainsi l'exigence du code PIN.
1 votes
Pour sécuriser vos identifiants, il est nécessaire d'utiliser l'un des types d'écrans de verrouillage qui possède un code secret (motif, NIP ou mot de passe). Ce que cette ligne vous dit, c'est que votre administrateur peut (normalement via une politique Exchange ActiveSync) verrouiller votre téléphone pour n'accepter que certains types de ces codes, par exemple ils peuvent ne pas faire confiance aux verrous à motif, et peuvent penser que les NIP à 4 chiffres n'ont pas assez de combinaisons. Ce n'est pas dire que vous pouvez désactiver cette exigence de sécurité.
2 votes
@GAThrawn Je trouve cela inacceptable si je viens d'installer un AC pour authentifier mes serveurs web via SSL (en utilisant des certificats auto-signés). Je comprendrais si cela concernait la signature des clés sur l'appareil, ou l'authentification de l'utilisateur - mais les deux vont dans l'autre sens. Heureusement, la solution de sgiebels semble fonctionner pour moi, avec quelques ajustements mineurs que j'ai décrits dans les commentaires là-bas. Seul inconvénient jusqu'à présent: cela nécessite des droits root.