web-dev-qa-db-fra.com

Android Certificats APK - quels champs sont obligatoires et que se passe-t-il si ces informations changent?

Cela semble assez basique, mais je ne trouve nulle part les informations que je recherche, en particulier en ce qui concerne les applications Android.

Je crée ma clé de sortie (auto-signée) et on me demande beaucoup d'informations:

  • Prénom et nom: (OK; ne changera probablement pas)
  • nité organisationnelle: (S'agit-il du "nom de l'entreprise"?)
  • Organisation: (En quoi est-ce différent de "l'Unité" ci-dessus?)
  • Ville ou localité: (Cela peut changer ...)
  • État ou province: (Peut également changer ...)
  • Code du pays (XX): (OK; pas susceptible de changer)

Dans cet esprit, j'ai deux questions de base sur les certificats auto-signés utilisés pour distribuer les applications Android:

  1. A la création, puis-je laisser n'importe lequel de ces champs VIDE, en particulier ceux qui sont susceptibles de changer? Ou est-ce interdit? (La grande question.)
  2. Et si je veux changer un champ donné plus tard ? Est-ce que cela signifie créer une nouvelle clé et demander à tout le monde de réinstaller l'application pour la mettre à niveau à nouveau , même si j'ai la clé d'origine? (Semble être le cas, à en juger par le peu que j'ai trouvé .)

Merci d'avance!


Edit: Plus d'informations sur # 1 ci-dessus: si cela ressemble à des certificats SSL, le nom, l'organisation et le pays devraient être suffisants. Mais IS que c'est le cas? Avantages et inconvénients de laisser un/tous les autres champs vides? Je ne peux pas être le seul à me poser des questions à ce sujet en termes d'applications ... et le = Android les documents que j'ai lus jusqu'à présent n'aident pas à clarifier cela.

Pour # 2, il semble que changer le certificat signifie le régénérer, et signer avec ce nouveau certificat n'évite pas le problème du marché (c'est comme une toute nouvelle application, même si vous signez avec les nouveaux ET anciens certificats). Il est donc d'autant plus important de bien faire les choses (mais suffisamment générique au cas où vous déménagez) la première fois que vous signez l'application.

44
MartyMacGyver

Le contenu de ces champs est en fait assez hors de propos et n'est généralement pas vu par quelqu'un d'autre que vous. Vous pouvez laisser des champs vides partout où keytool le permettra sans conséquence ultérieure.

Une fois que vous avez signé un apk avec un magasin de clés et que vous l'avez téléchargé sur le marché Android, vous ne pouvez pas signer ce même package avec un autre magasin de clés. Cela est évidemment fait pour empêcher quelqu'un d'autre de remplacer votre application par une autre.

Pour mon magasin de clés, je mets mes informations personnelles dedans, fixe la date d'expiration pour 999 ans dans le futur et le garde en sécurité et sauvegardé.

28
Michael Pardo

Pour répondre strictement à la question de savoir quels champs sont facultatifs: en fait, les champs tous sont facultatifs. La seule exigence est que vous en fournissiez au moins un (même s'il ne s'agit que du code du pays).

Voici Android Explication de Studio: Android Studio displaying an error message

Ça lit:

Au moins un champ d'émetteur de certificat doit être non vide

Effectivement, avec quelques tests, j'ai confirmé qu'un seul champ est requis.

Comme l'a répondu Michael, une fois votre application publiée, vous ne pouvez jamais la modifier .

9
Paul Lammertsma