web-dev-qa-db-fra.com

Erreur de signature Android: les entrées de certificat de confiance ne sont pas protégées par mot de passe

Vous avez un certificat pour signer les fichiers apk de version non signée Android, J'ai donc importé le cer à l'aide de la commande:

keytool -import -alias alias_name -file cer_name.cer -storepass changeit  -keystore my_keystore.keystore

Mais lors de la signature de l'application avec Android Studio, une erreur est générée:

Error:Execution failed for task ':packageDebug'.
> com.Android.ide.common.signing.KeytoolException: Failed to read key alias_name from store "C:\Users\username\my_keystore.keystore": trusted certificate entries are not password-protected

Mes déductions disaient que parce que les clés ne sont pas protégées par un mot de passe, j'ai donc essayé à nouveau de définir le mot de passe pour les clés avec

keytool -import -alias alias_name -file cer_name.cer -storepass changeit -keypass changeit -keystore my_keystore.keystore

Mais l'erreur persiste toujours. 

J'ai aussi essayé avec une procédure manuelle avec jarsigner:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my_keystore.keystore unsigned-release.apk alias_name

Vous avez une erreur:

jarsigner: Certificate chain not found for: alias_name.  alias_name must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.

S'il vous plaît, aidez-moi, je suis incapable d'obtenir un post pertinent sur cette erreur pour les signatures apk Android

12
Sanjay Singh

Je recommande fortement d’obtenir Keystore Explorer . Ce programme m'a sauvé la vie plus d'une fois alors que je rencontrais des problèmes de stockage de clés et de certificats. C'est gratuit et open source, et une interface graphique facile à naviguer. Il peut créer de nouvelles paires de clés et importer des paires de clés existantes dans votre magasin de clés. J'ai commencé à l'utiliser il y a environ 3 ans et il se trouve toujours dans mon dossier pour les outils de développement.

4
Timothy Winters

Les fichiers * .cer ne contiennent généralement que des certificats, pas la clé privée nécessaire pour signer un APK.

Répertoriez le contenu du magasin de clés:

keytool -list -v -keystore my_keystore.keystore

Et recherchez la ligne Entry type: (pour l'alias correspondant). La valeur doit être PrivateKeyEntry, pas trustedCertEntry

3
bwt

Si vous utilisez Android studio, il existe une solution très simple pour vous connecter apk, suivez les étapes ci-dessous. Allez dans Menu Android -> Rechercher la construction -> Générer l'APK signé ... après que cette nouvelle fenêtre est apparue -> cliquez sur Create new ... button. Ensuite, entrez les détails comme indiqué ci-dessous et cliquez sur OK -> Suivant. enter image description here -> Choisissez le chemin de stockage de clé dans lequel vous souhaitez stocker votre fichier .jks pour une utilisation ultérieure -> définissez le mot de passe souhaité -> set Nom d'alias -> mot de passe - > Complétez les détails du certificat -> cliquez sur suivant 

la fenêtre suivante apparaîtra comme ci-dessous la capture d'écran  enter image description here

Choisissez le répertoire que vous voulez signer .apk sera stocké (sinon, il générera dans le dossier app -> release) -> choisir la version de la signature -> cliquez sur terminer 

Attendez que l'APK ait été généré avec succès 

0
Arun-Khanka