Utiliser la signature d'application Google Play

Avec la signature d'application Google Play, Google gère et protège votre clé de signature d'applications à votre place, et l'utilise pour signer vos APK en vue de leur distribution. Ce moyen sécurisé de stocker votre clé de signature d'applications vous protège si cette clé est perdue ou compromise.

Important : Pour utiliser le format de publication d'applications recommandé Android App Bundle, vous devez vous inscrire à la signature d'application Google Play avant d'importer votre app bundle dans la console Play.

Pour vous inscrire, vous devez être le propriétaire du compte ou un utilisateur disposant de l'autorisation globale "Gérer les versions de production". Vous devez également accepter les Conditions d'utilisation. Vous pouvez inscrire des applications individuellement à la signature d'application Google Play.

Fonctionnement

Lorsque vous utilisez la signature d'application Google Play, vos clés sont stockées sur la même infrastructure que celle utilisée par Google pour ses propres clés. Les clés sont protégées par le service de gestion des clés Google. Pour en savoir plus sur l'infrastructure technique de Google, lisez les livres blancs sur la sécurité avec Google Cloud.

Les applications Android sont signées à l'aide d'une clé privée. Pour garantir la fiabilité des mises à jour des applications, chaque clé privée est associée à un certificat public que les appareils et services utilisent pour vérifier que l'application provient d'une source de confiance. Les appareils n'acceptent les mises à jour que lorsque leur signature correspond à celle de l'application installée. Ce processus est plus sûr lorsque vous confiez la gestion de la clé de signature de votre application à Google.

Remarque : L'utilisation de la signature d'application Google Play est facultative. Vous pouvez toujours importer un fichier APK et gérer vos propres clés au lieu d'utiliser un app bundle. Toutefois, si vous perdez votre keystore ou si sa sécurité est compromise, il vous sera impossible de mettre à jour votre application sans publier une nouvelle application avec un nouveau nom de package.

Présentation des clés, des artefacts et des outils
Terme Description
Clé de signature d'applications

Une clé de signature d'applications est utilisée par Google Play pour signer les APK envoyés sur l'appareil d'un utilisateur. Lorsque vous activez la signature d'application Google Play, vous pouvez soit importer une clé de signature d'applications existante, soit demander à Google d'en générer une pour vous.

Une clé de signature d'applications ne peut pas être modifiée pendant la durée de vie de votre application. Cette clé doit rester secrète, mais vous êtes libre de partager le certificat public de votre application avec d'autres personnes.

Clé d'importation

Une clé d'importation vous permet de signer l'app bundle ou l'APK avant de l'importer dans Google Play. Cette clé d'importation doit rester secrète, mais vous êtes libre de partager le certificat public de votre application avec d'autres personnes. Pour des raisons de sécurité, nous vous conseillons de choisir des clés de signature d'applications et d'importation différentes.

Il existe deux manières de générer une clé d'importation :

  • Utiliser votre clé de signature d'applications : si Google génère une clé de signature d'applications pour vous lorsque vous activez la signature d'application, la clé associée à votre première release est également votre clé d'importation.
  • Utiliser une clé d'importation distincte : si vous fournissez votre propre clé de signature d'applications lors de votre inscription, vous avez la possibilité de générer une nouvelle clé d'importation pour une sécurité accrue. Dans le cas contraire, utilisez votre clé de signature d'applications comme clé d'importation pour signer les releases.
Certificat (.der ou .pem)

Un certificat contient une clé publique et des informations d'identification supplémentaires sur le propriétaire de la clé. Le certificat de clé publique permet à quiconque de vérifier qui a signé l'app bundle ou l'APK. Vous pouvez le partager librement, car il ne contient pas votre clé privée.

Pour enregistrer votre ou vos clés auprès des fournisseurs d'API, vous pouvez télécharger le certificat public associé à votre clé de signature d'applications et à votre clé d'importation sur la page Signature d'application de la console Play. Un certificat de clé publique peut être partagé avec n'importe qui, contrairement à votre clé privée.

Empreinte du certificat

L'empreinte du certificat est une représentation courte et unique d'un certificat, souvent requise par les fournisseurs d'API en même temps que le nom du package afin de permettre à une application d'utiliser leurs services.

Les empreintes MD5, SHA-1 et SHA-256 des certificats d'importation et de signature d'applications sont disponibles sur la page Signature d'application de la console Play. D'autres empreintes peuvent également être converties en téléchargeant le certificat original (.der) sur la même page.

Keystore Java (.jks ou .keystore) Le keystore est un référentiel de certificats de sécurité et de clés privées.
Outil de chiffrement Play de clé privée (PEPK, Play Encrypt Private Key)

Cet outil permet d'exporter des clés privées depuis un keystore Java et de les chiffrer en vue de leur transfert dans Google Play.

Lorsque vous fournissez la clé de signature d'applications à Google, sélectionnez l'option permettant d'exporter et d'importer votre clé (et son certificat public, si nécessaire), puis suivez les instructions pour télécharger et utiliser l'outil. Vous pouvez également, si vous le souhaitez, télécharger, examiner et utiliser le code Open Source de l'outil PEPK.

Processus de signature d'application

Vous pouvez importer des APK signés avec la clé de signature d'applications d'origine avant ou après avoir activé la signature d'application Google Play.

Si vous commencez à utiliser le format Android App Bundle, vous pouvez soumettre vos fichiers à des tests pendant que vous utilisez votre APK en version production. Voici comment procéder :

  1. Signez votre app bundle ou APK, puis importez-le dans la console Play.
  2. En fonction de ce que vous importez, voici comment se déroulent les différents processus :
    • App bundle : Google génère des APK optimisés à partir de votre app bundle et les signe avec la clé de signature d'applications.
    • APK signé avec une clé d'importation : Google vérifie et supprime votre signature de l'APK, puis signe de nouveau ce dernier avec la clé de signature d'applications.
    • APK signé avec une clé de signature d'applications : Google valide la signature.
  3. Google fournit aux utilisateurs des fichiers APK signés.

Activer la signature d'application Google Play

Nouvelles applications

Étape 1 : Créez une clé d'importation

  1. Suivez les instructions pour créer une clé d'importation.
  2. Signez le nouvel APK avec la clé d'importation.

Étape 2 : Préparez votre release

  1. Suivez les instructions pour préparer et déployer votre release.
  2. Après avoir sélectionné un niveau de sortie, configurez la signature d'application dans la section "Autoriser Google à gérer et à protéger votre clé de signature d'applications".
  3. Sélectionnez Continuer pour que la clé générée devienne la clé d'importation que vous utiliserez pour signer vos futures releases, ou Options avancées, où vous retrouverez les options suivantes :
    • Utiliser la même clé qu'une autre application sur votre compte de développeur (option 2).
    • Importer une clé de signature d'applications existante (options 2, 3 et 4) : choisissez l'option d'exportation et d'importation qui vous convient. Après avoir importé votre clé de signature d'applications et son certificat public, vous pouvez créer une clé d'importation ou continuer à utiliser la clé de signature d'applications en guise de clé d'importation.

Remarque : Vous devez accepter les conditions d'utilisation et activer la signature d'application pour continuer.

Étape 3 : Enregistrez votre clé de signature d'applications auprès des fournisseurs d'API

Si votre application utilise une API, vous devez généralement enregistrer le certificat de la clé que nous utilisons pour signer votre application à des fins d'authentification à l'aide de l'empreinte du certificat. Pour trouver le certificat, procédez comme suit :

  1. Connectez-vous à la console Play.
  2. Sélectionnez une application.
  3. Dans le menu de gauche, sélectionnez Gestion de la publication > Signature d'application.
  4. Copiez les empreintes (MD5, SHA-1 et SHA-256) de votre certificat de signature d'applications.
    • Si le fournisseur d'API requiert un autre type d'empreinte, vous pouvez également télécharger le certificat original au format .der et le convertir à l'aide des outils imposés par ce fournisseur d'API.
Applications existantes

Étape 1 : Adoptez la signature d'application Google Play

  1. Connectez-vous à la console Play.
  2. Sélectionnez une application.
  3. Dans le menu de gauche, sélectionnez Gestion de la publication > Signature d'application.
  4. Si vous ne l'avez pas déjà fait, lisez les conditions d'utilisation, puis sélectionnez Accepter.

Étape 2 : Importez votre clé d'origine dans Google Play et créez une clé d'importation

  1. Trouvez la clé de signature d'applications d'origine.
  2. Connectez-vous à la console Play.
  3. Sélectionnez une application.
  4. Dans le menu de gauche, sélectionnez Gestion de la publication > Signature d'application.
  5. Sélectionnez l'option d'exportation et d'importation qui convient le mieux à votre processus de publication, puis importez une clé de signature d'applications existante.

Étape 3 : Créez une clé d'importation (facultatif et recommandé)

  1. Créez une clé d'importation, puis importez le certificat dans Google Play.
    • Vous pouvez également continuer d'utiliser la clé de signature d'applications comme clé d'importation.
  2. Copiez les empreintes (MD5, SHA-1 et SHA-256) de votre certificat de signature d'applications.
    • À des fins de test, vous devrez peut-être enregistrer le certificat de votre clé d'importation auprès des fournisseurs d'API à l'aide de son empreinte et de la clé de signature d'applications.

Étape 4 : Signez la mise à jour de votre application avec la clé d'importation

Lorsque vous publiez des mises à jour pour votre application, vous devez les signer avec votre clé d'importation.

  • Si vous n'avez pas généré de nouvelle clé d'importation : continuez à utiliser votre clé de signature d'applications d'origine pour signer chaque release avant de l'importer dans Google Play. En cas de perte de votre clé de signature d'applications, vous pouvez générer une nouvelle clé d'importation et l'enregistrer auprès de Google pour continuer à mettre à jour votre application.
  • Si vous avez généré une nouvelle clé d'importation : utilisez cette nouvelle clé d'importation pour signer les releases avant de les importer dans Google Play. Une fois l'importation effectuée, Google vérifie que la release contient une clé d'importation afin de valider votre identité. Si vous perdez cette clé d'importation, vous pouvez contacter l'équipe d'assistance pour la réinitialiser.

Créer une clé d'importation et mettre à jour les keystores

Pour plus de sécurité, il est recommandé de signer votre application avec une nouvelle clé d'importation plutôt que d'utiliser votre clé de signature d'applications.

Vous pouvez créer une clé d'importation lorsque vous activez la signature d'application Google Play. Il est également possible de créer cette clé ultérieurement en sélectionnant Gestion de la publication > Signature d'application.

Voici comment créer une clé d'importation :

  1. Suivez les instructions sur le site pour les développeurs Android. Stockez votre clé en lieu sûr.
  2. Exportez le certificat de cette clé d'importation au format PEM. Remplacez les arguments soulignés suivants :
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Pendant le processus de publication, lorsque vous y êtes invité, importez le certificat pour l'enregistrer auprès de Google.

Lorsque vous utilisez une clé d'importation :

  • Votre clé d'importation est uniquement enregistrée auprès de Google pour authentifier l'identité du créateur de l'application.
  • Votre signature est supprimée de tous les fichiers APK importés avant leur envoi aux utilisateurs.
Restrictions relatives à la clé d'importation
  • Cette clé doit être une clé RSA de 2 048 bits ou plus.
  • Les clés DSA, EC et RSA inférieures à 2 048 bits ne sont pas acceptées.
Mise à jour des keystores

Une fois que vous avez créé votre clé d'importation, voici quelques emplacements à vérifier et à mettre à jour :

  • Ordinateurs locaux
  • Serveur sur site verrouillé (LCA variables)
  • Ordinateur cloud (LCA variables)
  • Services dédiés de gestion des secrets
  • Référentiels (Git)

Bonnes pratiques

  • Si vous distribuez également votre application en dehors de Google Play ou si vous prévoyez de le faire plus tard, vous pouvez générer la clé de signature d'applications que vous souhaitez utiliser pour chaque plate-forme de téléchargement d'applications, puis l'importer dans Google lorsque vous activez la signature d'application Google Play.
  • Pour protéger votre compte, activez la validation en deux étapes pour tous les comptes ayant accès à votre console Play.
  • Après avoir publié un app bundle en version de test ou de production, vous pouvez utiliser l'explorateur de packages App Bundle pour télécharger une archive ZIP contenant tous les APK d'un appareil spécifique. Ces fichiers APK sont signés avec la clé de signature d'applications et vous pouvez les installer dans l'archive ZIP sur un appareil à l'aide de l'utilitaire de ligne de commande bundletool.
  • Pour plus de sécurité, générez une clé d'importation différente de votre clé de signature d'applications.
  • Si vous souhaitez tester l'APK signé avec la clé d'importation, vous devez enregistrer cette dernière dans un service ou une API qui utilise la signature de votre application à des fins d'authentification, comme l'API Google Maps ou le SDK Facebook.
  • Si vous utilisez une API Google, vous pouvez enregistrer le certificat d'importation dans la Google Cloud Console pour votre application.

Clé d'importation perdue ou compromise ?

Si vous avez perdu votre clé d'importation privée ou si sa sécurité est compromise, vous pouvez en créer une autre, puis demander au titulaire de votre compte de contacter l'équipe d'assistance pour la réinitialiser. Dans le formulaire à remplir, le titulaire du compte doit joindre le fichier upload_certificate.pem.

Une fois que notre équipe d'assistance a enregistré la nouvelle clé d'importation, vous recevez un e-mail de confirmation. Vous pouvez ensuite mettre à jour vos keystores et enregistrer votre clé auprès des fournisseurs d'API.

Important : Le fait de réinitialiser votre clé d'importation n'affectera pas la clé de signature d'applications que Google Play utilise pour signer de nouveau les fichiers APK avant de les fournir aux utilisateurs.

Ces informations vous-ont elles été utiles ?
Comment pouvons-nous l'améliorer ?