Podpisovanie aplikácií v službe Google Play

Google prostredníctvom podpisovania aplikácií v službe Google Play spravuje a chráni podpisový kľúč vašej aplikácie a podpisuje ním súbory APK na distribúciu. Ide o bezpečný spôsob uchovávania podpisového kľúča aplikácie, ktorý vás ochráni, keď ho stratíte alebo keď ho niekto odhalí.

Dôležité: Ak chcete používať odporúčaný formát na zverejňovanie aplikácií Android App Bundle, musíte sa ešte pred nahraním balíka aplikácie v službe Play Console zaregistrovať do programu podpisovania aplikácií v službe Google Play.

Prihlásiť sa môžu iba vlastníci účtov alebo používatelia s globálnymi povoleniami na správu produkčných vydaní, ktorí prijmú zmluvné podmienky. Aplikácie môžete do programu podpisovania aplikácií v službe Google Play zaregistrovať postupne.

Ako to funguje

Keď používate podpisovanie aplikácií v službe Google Play, kľúče sú uchovávané v rovnakej infraštruktúre, akú Google používa na ukladanie vlastných kľúčov. Kľúče sú chránené službou správy kľúčov od Googlu. Ďalšie informácie o technickej infraštruktúre Googlu si môžete prečítať v informačných príručkách o zabezpečení cloudu Google.

Aplikácie pre Android sa podpisujú súkromným kľúčom. Každý súkromný kľúč je spojený s verejným certifikátom, pomocou ktorého môžu zariadenia a služby overiť, či príslušná aplikácia pochádza z dôveryhodného zdroja. Zaistí sa tým dôveryhodnosť aktualizácií aplikácie. Zariadenia prijmú aktualizácie iba vtedy, keď sa jej podpis zhoduje s podpisom nainštalovanej aplikácie. Tým, že necháte Google spravovať podpisový kľúč aplikácie, zvyšujete zabezpečenie tohto procesu.

Poznámka: Používanie podpisovania aplikácií v službe Google Play je voliteľné. Namiesto balíka aplikácie môžete stále nahrať súbor APK a spravovať vlastné kľúče. Ak však stratíte úložisko kľúčov alebo ho niekto odhalí, aplikáciu nebudete môcť aktualizovať, takže budete musieť zverejniť novú aplikáciu s novým názvom balíka.

Popisy kľúčov, artefaktov a nástrojov
Časové obdobie Popis
Podpisový kľúč aplikácie

Kľúč, ktorým Google Play podpisuje súbory APK doručované do zariadenia používateľa. Pri prihlásení do programu podpisovania aplikácií v službe Google Play nahráte existujúci podpisový kľúč aplikácie alebo vyberiete, aby ho pre vás služba Google Play vygenerovala.

Podpisový kľúč aplikácie nie je možné počas životného cyklu aplikácie nikdy zmeniť. Udržujte ho preto v tajnosti. Verejný certifikát aplikácie však môžete zdieľať s kýmkoľvek.

Kľúč nahrávania

Kľúč, ktorým podpisujete balík aplikácie alebo súbor APK predtým, ako ho nahráte do služby Google Play. Udržujte ho v tajnosti. Verejný certifikát aplikácie však môžete zdieľať s kýmkoľvek. Z bezpečnostných dôvodov odporúčame používať podpisový kľúč aplikácie a kľúč nahrávania, ktoré sa od seba líšia.

Existujú dva spôsoby, ako kľúč nahrávania vygenerovať:

  • Podpisovým kľúčom aplikácie: ak vám po prihlásení do programu podpisovania aplikácií Google vygeneruje podpisový kľúč aplikácie, kľúč nahrávania bude ten kľúč, ktorým podpíšete prvé vydanie.
  • Samostatným kľúčom nahrávania: ak po prihlásení do programu podpisovania aplikácií poskytnete vlastný podpisový kľúč aplikácie, budete mať k dispozícii možnosť generovať nový kľúč nahrávania, čím sa zvýši zabezpečenie. Ak ho nevygenerujete, používajte podpisový kľúč aplikácie ako kľúč nahrávania na podpisovanie vydaní.
Certifikát (.der alebo .pem)

Certifikát obsahuje verejný kľúč aj ďalšie identifikačné údaje o jeho vlastníkovi. Verejný certifikát kľúča umožňuje komukoľvek overiť, kto podpísal balík aplikácie alebo súbor APK. Môžete ho s kýmkoľvek zdieľať, pretože neobsahuje súkromný kľúč.

Na stránke Podpisovanie aplikácií môžete stiahnuť verejný certifikát pre podpisový kľúč aplikácie a kľúč nahrávania, aby ste ich mohli zaregistrovať u poskytovateľov rozhraní API. Verejný certifikát kľúča môžete zdieľať s kýmkoľvek. Neobsahuje váš súkromný kľúč.

Digitálny odtlačok certifikátu

Krátka a jedinečná podoba certifikátu, ktorá je spolu s názvom balíka často vyžadovaná poskytovateľmi rozhraní API na registráciu aplikácie, aby bolo možné používať ich službu.

Digitálne odtlačky MD5, SHA-1 a SHA-256 certifikátu nahrávania a podpisového certifikátu aplikácie nájdete na stránke Podpisovanie aplikácií v službe Play Console. Ďalšie digitálne odtlačky sa dajú vypočítať z pôvodného certifikátu (.der), ktorý stiahnete na rovnakej stránke.

Úložisko kľúčov Java Keystore (.jks alebo .keystore) Odkladací priestor bezpečnostných certifikátov a súkromných kľúčov.
Nástroj PEPK (Play Encrypt Private Key)

Nástroj na export súkromných kľúčov z úložiska kľúčov Java Keystore a ich šifrovanie na prenos do služby Google Play.

Keď poskytujete Googlu podpisový kľúč aplikácie, vyberte možnosť na exportovanie a nahranie kľúča (a ak sa vyžaduje, aj jeho verejného certifikátu). Potom tento nástroj stiahnite a používajte podľa uvedených pokynov. Ak chcete, môžete stiahnuť, skontrolovať a používať otvorený zdrojový kód nástroja PEPK.

Proces podpisovania aplikácií

Súbory APK podpísané pôvodným podpisovým kľúčom aplikácie môžete nahrať pred alebo po prihlásení do programu podpisovania aplikácií v službe Google Play.

Ak začínate používať balíky Android App Bundle, môžete ich otestovať v testovacích kanáloch a zatiaľ používať existujúci súbor APK v produkcii. Tento proces prebieha nasledovne:

  1. Podpíšte svoj balík aplikácie alebo súbor APK a nahrajte ho do služby Play Console.
  2. Proces podpisovania sa líši podľa toho, čo nahráte:
    • Balík aplikácie: Google vygeneruje optimalizované súbory APK z balíka aplikácie a podpíše ich podpisovým kľúčom aplikácie.
    • Súbor APK podpísaný kľúčom nahrávania: Google overí podpis zo súboru APK, potom ho odstráni a nakoniec súbor APK znova podpíše podpisovým kľúčom aplikácie.
    • Súbor APK podpísaný podpisovým kľúčom aplikácie: Google overí podpis.
  3. Google doručí podpísané súbory APK používateľom.

Ako sa prihlásiť do programu podpisovania aplikácií v službe Google Play

Nové aplikácie

1. krok: vytvorte kľúč nahrávania

  1. Vytvorte kľúč nahrávania podľa pokynov.
  2. Podpíšte nový súbor APK kľúčom nahrávania.

2. krok: pripravte vydanie

  1. Pripravte a zaveďte vydanie podľa pokynov.
  2. Keď vyberiete kanál vydania, nakonfigurujte podpisovanie aplikácií v časti Povolenie Googlu spravovať a chrániť váš podpisový kľúč aplikácie.
  3. Vyberte možnosť Pokračovať, ktorou nastavíte vygenerovaný kľúč ako kľúč nahrávania na podpisovanie budúcich vydaní, alebo položku Rozšírené možnosti, ktorá zahŕňa:
    • používanie rovnakého kľúča ako iná aplikácia v účte vývojára (2. možnosť).
    • nahranie existujúceho podpisového kľúča aplikácie (2., 3. a 4. možnosť): vyberte najvhodnejšiu možnosť na exportovanie a nahranie. Po nahraní podpisového kľúča aplikácie a jeho verejného certifikátu môžete vytvoriť kľúč nahrávania alebo naďalej používať podpisový kľúč aplikácie ako kľúč nahrávania.

Poznámka: Ak chcete pokračovať, musíte prijať zmluvné podmienky a prihlásiť sa do programu podpisovania aplikácií.

3 krok: zaregistruje podpisový kľúč aplikácie u poskytovateľov rozhraní API

Ak vaša aplikácia používa rozhrania API, zvyčajne si musíte na účely overenia totožnosti pomocou digitálneho odtlačku zaregistrovať certifikát kľúča, ktorým Google podpíše vašu aplikáciu. Certifikát nájdete takto:

  1. Prihláste sa do služby Play Console.
  2. Vyberte aplikáciu.
  3. V ponuke vľavo vyberte položky Správa vydaní > Podpisovanie aplikácií.
  4. Skopírujte digitálneho odtlačky (MD5, SHA-1 a SHA-256) podpisového certifikátu aplikácie.
    • Ak poskytovateľ rozhrania API vyžaduje iný typ odtlačku, môžete tiež stiahnuť pôvodný certifikát vo formáte .der a konvertovať ho prostredníctvom transformačných nástrojov, ktoré poskytovateľ rozhrania API vyžaduje.
Existujúce aplikácie

1. krok: zaregistrujte si podpisovanie aplikácií v službe Google Play

  1. Prihláste sa do služby Play Console.
  2. Vyberte aplikáciu.
  3. V ponuke vľavo vyberte položky Správa vydaní > Podpisovanie aplikácií.
  4. Ak ste to ešte neurobili, prečítajte si zmluvné podmienky a vyberte možnosť Prijať.

2. krok: odošlite pôvodný kľúč Googlu a vytvorte kľúč nahrávania

  1. Nájdite pôvodný podpisový kľúč aplikácie.
  2. Prihláste sa do služby Play Console.
  3. Vyberte aplikáciu.
  4. V ponuke vľavo vyberte položky Správa vydaní > Podpisovanie aplikácií.
  5. Vyberte možnosť na exportovanie a nahranie, ktorá je pre váš proces vydávania najvhodnejšia, a nahrajte existujúci podpisový kľúč aplikácie.

3. krok: vytvorte kľúč nahrávania (voliteľné a odporúčané)

  1. Vytvorte kľúč nahrávania a nahrajte certifikát do služby Google Play.
    • Môžete tiež naďalej používať podpisový kľúč aplikácie ako kľúč nahrávania.
  2. Skopírujte digitálneho odtlačky (MD5, SHA-1 a SHA-256) podpisového certifikátu vašej aplikácie.
    • Na účely testovania budete musieť zrejme zaregistrovať certifikát kľúča nahrávania u poskytovateľov rozhraní API pomocou jeho digitálneho odtlačku, ako aj podpisový kľúč aplikácie.

4. krok: podpíšte ďalšiu aktualizáciu aplikácie kľúčom nahrávania

Keď vydáte aktualizácie aplikácie, musíte ich podpísať kľúčom nahrávania.

  • Ak ste nevygenerovali nový kľúč nahrávania: naďalej podpisujte vydania pôvodným podpisovým kľúčom aplikácie pred nahraním do služby Google Play. Ak o podpisový kľúč aplikácie prídete, môžete vygenerovať nový kľúč nahrávania a zaregistrovať ho na Googli, aby ste mohli aplikáciu naďalej aktualizovať.
  • Ak ste vygenerovali nový kľúč nahrávania: podpisujte ním vydania pred nahraním do služby Google Play. Po nahraní Google skontroluje v príslušnom vydaní kľúč nahrávania, čím overí vašu totožnosť. Ak o kľúč nahrávania prídete, môžete kontaktovať podporu a požiadať o jeho resetovanie.

Vytvorenie kľúča nahrávania a aktualizovanie úložísk kľúčov

Ak chcete zvýšiť zabezpečenie, odporúčame podpísať aplikáciu novým kľúčom nahrávania, a nie podpisovým kľúčom aplikácie.

Kľúč nahrávania môžete vytvoriť pri prihlásení do programu podpisovania aplikácií v službe Google Play alebo to môžete urobiť neskôr v časti Správa vydaní > Podpisovanie vydaní.

Kľúč nahrávania vytvoríte takto:

  1. Postupujte podľa pokynov na webe Android Developers. Kľúč uchovajte na bezpečnom mieste.
  2. Exportujte certifikát pre kľúč nahrávania do formátu PEM. Nahraďte nasledujúce podčiarknuté argumenty:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Keď sa počas procesu vydávania zobrazí výzva, zaregistrujte svoj kľúč nahrávania na Googli tak, že nahráte jeho certifikát.

Keď použijete kľúč nahrávania:

  • Kľúč nahrávania je zaregistrovaný iba na Googli, a to na overovanie totožnosti tvorcu aplikácie.
  • Z nahraných súborov APK je odstránený váš podpis ešte predtým, ako sú odoslané používateľom.
Obmedzenia kľúčov nahrávania
  • Musí to byť kľúč RSA s dĺžkou minimálne 2 048 bitov.
  • Kľúče DSA, EC ani RSA kratšie ako 2 048 bitov nie sú podporované.
Aktualizácia úložísk kľúčov

Po vytvorení kľúča nahrávania odporúčame aktualizovať niektoré nasledujúce úložiská kľúčov:

  • miestne zariadenia,
  • zamknutý server na webe (rôzne zoznamy ACL),
  • Cloudové zariadenie (rôzne zoznamy ACL)
  • Vyhradené služby na správu tajných položiek
  • odkladacie priestory (Git).

Osvedčené postupy

  • Ak aplikáciu distribuujete mimo služby Google Play alebo to plánujete urobiť neskôr, môžete vygenerovať podpisový kľúč aplikácie, ktorý chcete použiť pre každý obchod s aplikáciami, a potom ho nahrať na Google pri prihlasovaní do programu podpisovania aplikácií v službe Google Play.
  • Zapnite dvojstupňové overenie pre účty, ktoré majú prístup k vašej službe Play Console, čím zaistíte ich ochranu.
  • Po zverejnení balíka aplikácie do testovacieho alebo produkčného kanála môžete prejsť do prieskumníka balíka aplikácie a stiahnuť si archív ZIP so všetkými súbormi APK pre konkrétne zariadenie. Tieto súbory APK sú podpísané podpisovým kľúčom aplikácie a súbory APK obsiahnuté v archíve ZIP môžete nainštalovať v zariadení pomocou nástroja príkazového riadka bundletool.
  • Vygenerujte nový kľúč nahrávania, ktorý je odlišný od podpisového kľúča aplikácie, čím zvýšite zabezpečenie.
  • Ak chcete otestovať súbor APK podpísaný kľúčom nahrávania, budete si musieť zaregistrovať kľúč nahrávania pomocou ľubovoľnej služby alebo rozhrania API, ktoré používa podpis aplikácie na overenie totožnosti (napríklad Google Maps API alebo Facebook SDK).
  • Ak používate ľubovoľné rozhranie Google API, mali by ste si registrovať certifikát nahrávania v službe Google Cloud Console pre príslušnú aplikáciu.

Stratili ste kľúč nahrávania alebo ho niekto odhalil?

Ak ste kľúč nahrávania stratili alebo bol odhalený, môžete si vytvoriť nový a požiadať vlastníka účtu, aby kontaktoval podporu so žiadosťou o resetovanie kľúča. Pri kontaktovaní podpory by vlastník účtu nemal zabudnúť priložiť súbor upload_certificate.pem.

Keď tím podpory nový kľúč nahrávania zaregistruje, pošle vám správu. Potom si môžete aktualizovať úložiská kľúčov a kľúč zaregistrovať u poskytovateľov rozhraní API.

Dôležité: Resetovaním kľúča nahrávania neovplyvníte podpisový kľúč aplikácie, ktorým služba Google Play opätovne podpisuje súbory APK ešte pred ich doručením používateľom.

Pomohlo vám to?
Ako ju môžeme zlepšiť?