„Google Play“ programų pasirašymo naudojimas

Pasirinkus „Google Play“ programų pasirašymą, „Google“ tvarko ir saugo programos pasirašymo raktą už jus ir jį naudodama pasirašo APK, kad galėtų vykdyti platinimo procesą. Tai patikimas būdas laikyti programos pasirašymo raktą, padedantis apsisaugoti, jei raktas kada nors būtų prarastas ar pažeistas.

Svarbu: jei norite naudoti „Android App Bundle“, rekomenduojamą programos paskelbimo formatą, prieš įkeldami programos komponentų rinkinį sistemoje „Play Console“, turite užsiregistruoti naudoti „Google Play“ programų pasirašymą.

Jei norite pasirinkti šį variantą, turite būti paskyros savininkas arba naudotojas, turintis visuotinį leidimą tvarkyti gamybinės versijos leidimus, ir sutikti su paslaugų teikimo sąlygomis. Galite užregistruoti programas naudoti „Google Play“ programų pasirašymą vienu metu.

Kaip tai veikia

Kai naudojate „Google Play“ programų pasirašymą, jūsų raktai saugomi toje pačioje infrastruktūroje, kurią „Google“ naudoja savo raktams saugoti. Raktai saugomi naudojant „Google Key Management Service“. Daugiau apie „Google“ technikos infrastruktūrą galite sužinoti „Google Cloud Security“ baltosiose knygose.

„Android“ programos pasirašomos su privačiu raktu. Siekiant užtikrinti, kad programos atnaujinimai būtų patikimi, su kiekvienu privačiu raktu susiejamas viešasis sertifikatas, kurį naudodami įrenginiai arba paslaugos gali patvirtinti, kad programa gaunama iš patikimo šaltinio. Įrenginiai priima naujinimus tik kai jų parašas atitinka įdiegtos programos parašą. Leidžiant „Google“ valdyti programos pasirašymo raktą, šis procesas tampa saugesnis.

Pastaba: „Google Play“ programų pasirašymas nėra privalomas. Vis dar galite įkelti APK ir valdyti savo raktus, užuot naudoję programos komponentų rinkinį. Tačiau jei prarasite „Keystore“ failą arba jis bus sugadintas, negalėsite atnaujinti programos nepaskelbę naujos programos su nauju paketo pavadinimu.

Raktų, objektų ir įrankių aprašai
Terminas Aprašas
Programos pasirašymo raktas

Raktas, kurį naudodama „Google Play“ pasirašo APK, teikiamus naudotojo įrenginyje. Kai pasirenkate naudoti „Google Play“ programų pasirašymą, galite įkelti esamą programos pasirašymo raktą arba pasirinkti, kad raktą sugeneruotų „Google Play“.

Programos pasirašymo rakto negalima keisti per visą programos naudojimo laiką. Neatskleiskite programos pasirašymo rakto, tačiau programos viešąjį sertifikatą galite bendrinti su kitais.

Įkėlimo raktas

Raktas, kurį naudodami pasirašote programos komponentų rinkinį arba APK prieš įkeldami jį į „Google Play“. Laikykite įkėlimo raktą slaptai, tačiau programos viešąjį sertifikatą galite bendrinti su kitais. Gera idėja saugumo sumetimais turėti skirtingus programos pasirašymo ir įkėlimo raktus.

Įkėlimo raktą galima sugeneruoti dviem būdais.

  • Naudojant programos pasirašymo raktą: jei turite „Google“ sugeneruotą programos pasirašymo raktą, kai pasirenkate programos pasirašymą, pirmam leidimui naudojamas raktas yra ir įkėlimo raktas.
  • Naudojant atskirą įkėlimo raktą: jei pateikiate savo programos pasirašymo raktą, kai pasirenkate programos pasirašymą, galite pasirinkti generuoti naują įkėlimo raktą, kad būtų dar saugiau. Jei jo negeneruojate, pasirašant leidimus kaip įkėlimo raktas naudojamas programos pasirašymo raktas.
Sertifikatas (.der arba .pem)

Sertifikatas apima viešą raktą ir papildomą identifikavimo informaciją apie tai, kam jis priklauso. Naudodami viešo rakto sertifikatą bet kas gali patvirtinti, kas pasirašė programos komponentų rinkinį arba APK. Galite juo dalytis su kitais, nes jame nėra jūsų privataus rakto.

Kad raktus galėtumėte priregistruoti API paslaugų teikėjų sistemose, programos pasirašymo rakto ir įkėlimo rakto viešąjį sertifikatą galite atsisiųsti puslapyje Programos pasirašymas sistemoje „Play Console“ Viešo rakto sertifikatą galima bendrinti su bet kuo. Jame nėra jūsų privataus rakto.

Sertifikato kontrolinis kodas

Trumpas unikalus sertifikato kodas, kurio dažnai prašo API paslaugų teikėjai kartu su paketo pavadinimu, kai registruojate programą jų paslaugoms naudoti.

Įkėlimo ir programos pasirašymo MD5, SHA-1 ir SHA-256 kontrolinius kodus galima rasti puslapyje Programos pasirašymas sistemoje „Play Console“. Kitus kontrolinius kodus taip pat galima apskaičiuoti atsisiuntus pradinį sertifikatą (.der) iš to paties puslapio.

„Java Keystore“ (.jks arba .keystore) Saugos sertifikatų ir privačių raktų saugykla.
Įrankis „Play Encrypt Private Key“ (PEPK)

Naudodami šį įrankį galite eksportuoti privačius raktus iš „Java Keystore“ ir juos užšifruoti, kad būtų galima naudoti sistemoje „Google Play“.

Teikdami programos pasirašymo raktą naudoti sistemoje „Google“, pasirinkite eksportuoti ir įkelti raktą (jei reikia, ir jo viešąjį sertifikatą) ir vadovaukitės instrukcijomis, kaip atsisiųsti ir naudoti įrankį. Jei pageidaujate, galite atsisiųsti, peržiūrėti ir naudoti įrankio PEPK atvirojo šaltinio kodą.

Programos pasirašymo procesas

APK, pasirašytus naudojant pradinį programos pasirašymo raktą, galite įkelti prieš pasirinkdami naudoti „Google Play“ programų pasirašymą arba jau tai pasirinkę.

Jei pradėsite naudoti „Android App Bundle“, galite išbandyti juos bandymų takeliuose su esama gamybine APK versija. Toliau nurodyta, kaip veikia procesas.

  1. Pasirašykite programos komponentų rinkinį ar APK ir įkelkite į „Play Console“.
  2. Toliau aprašoma, kaip pasirašymo procesas skiriasi pagal tai, ką įkėlėte.
    • Programos komponentų rinkinys: „Google“ sugeneruos optimizuotus APK iš programos komponentų rinkinio ir pasirašys juos naudodama programos pasirašymo raktą.
    • APK, prie kurių prisijungta naudojant įkėlimo raktą: „Google“ patvirtina parašą ir pašalina jį iš APK, tada iš naujo prisijungia prie APK programos pasirašymo raktu.
    • APK, pasirašyti naudojant programos pasirašymo raktą: „Google“ patvirtina parašą.
  3. „Google“ teikia pasirašytus APK naudotojams.

Pasirinkimas naudoti „Google Play“ programų pasirašymą

Naujos programos

1 veiksmas: sukurkite įkėlimo raktą

  1. Vadovaudamiesi instrukcijomis, sukurkite įkėlimo raktą.
  2. Pasirašykite naują APK naudodami įkėlimo raktą.

2 veiksmas: paruoškite leidimą

  1. Vadovaudamiesi instrukcijomis, paruoškite ir išleiskite leidimą.
  2. Pasirinkę leidimo grupę sukonfigūruokite programos pasirašymą skiltyje „Leidimas „Google“ tvarkyti ir saugoti programos pasirašymo raktą“.
  3. Pasirinkite Tęsti (sugeneruotas raktas taps įkėlimo raktu, kurį naudosite pasirašyti būsimus leidimus) arba išplėstines parinktis, kurios apima nurodytas toliau.
    • To paties rakto naudojimas kitoje kūrėjo paskyros programoje (2 parinktis).
    • Įkelkite esamą programos pasirašymo raktą (2, 3, ir 4 parinktys): pasirinkite eksportuoti ir įkelkite jums tinkamiausią parinktį. Įkėlę programos pasirašymo raktą ir jo viešąjį sertifikatą galite sukurti įkėlimo raktą arba toliau naudoti programos pasirašymo raktą kaip įkėlimo raktą.

Pastaba: norėdami tęsti turėsite sutikti su paslaugų teikimo sąlygomis ir pasirinkti programos pasirašymą.

3 veiksmas: užregistruokite programos pasirašymo raktą API paslaugų teikėjų sistemose

Jei programoje naudojamos kokios nors API, įprastai siekiant autentifikuoti reikia užregistruoti rakto, kurį naudodama „Google“ pasirašo programą, sertifikatą, pasitelkiant sertifikato kontrolinį kodą. Toliau nurodyta, kur rasti sertifikatą.

  1. Prisijunkite prie „Play Console“.
  2. Pasirinkite programą.
  3. Kairiajame meniu pasirinkite Leidimų tvarkymas > Programos pasirašymas.
  4. Nukopijuokite programos pasirašymo sertifikato kontrolinius kodus (MD5, SHA-1 ir SHA-256).
  5. Jei API teikėjui reikia kito tipo kontrolinio kodo, taip pat galite atsisiųsti pradinį sertifikatą .der formatu ir konvertuoti jį naudodami API teikėjo nurodytus pakeitimo įrankius.
Esamos programos

1 veiksmas: užsiregistruokite naudoti „Google Play“ programų pasirašymą

  1. Prisijunkite prie „Play Console“.
  2. Pasirinkite programą.
  3. Kairiajame meniu pasirinkite Leidimų tvarkymas > Programos pasirašymas.
  4. Peržiūrėkite paslaugų teikimo sąlygas ir pasirinkite Sutikti, jei to dar nepadarėte.

2 veiksmas: siųskite pradinį raktą „Google“ ir sukurkite įkėlimo raktą

  1. Raskite pradinį programos pasirašymo raktą.
  2. Prisijunkite prie „Play Console“.
  3. Pasirinkite programą.
  4. Kairiajame meniu pasirinkite Leidimų tvarkymas > Programos pasirašymas.
  5. Pasirinkite eksportavimo ir įkėlimo parinktį, geriausiai atitinkančią išleidimo procesą, ir įkelkite esamą programos pasirašymo raktą.

3 veiksmas: sukurkite įkėlimo raktą (neprivaloma, bet rekomenduojama)

  1. Sukurkite įkėlimo raktą ir įkelkite sertifikatą į „Google Play“.
    • Taip pat galite toliau naudoti programos pasirašymo raktą kaip įkėlimo raktą.
  2. Nukopijuokite programos pasirašymo sertifikato kontrolinius kodus (MD5, SHA-1 ir SHA-256).
    • Siekiant testuoti gali reikėti priregistruoti įkėlimo rakto sertifikatą API paslaugų teikėjų sistemose naudojant sertifikato kontrolinį kodą ir programos pasirašymo raktą.

4 veiksmas: pasirašykite kitą programos naujinį naudodami įkėlimo raktą

Kai išleidžiate programos naujinius, turite juos pasirašyti naudodami įkėlimo raktą.

  • Jei nesugeneravote naujo įkėlimo rakto: toliau naudokite pradinį programos pasirašymo raktą leidimams pasirašyti, prieš juos įkeldami į „Google Play“. Jei prarasite programos pasirašymo raktą, galėsite sugeneruoti naują įkėlimo raktą ir priregistruoti jį sistemoje „Google“, kad galėtumėte ir toliau atnaujinti programą.
  • Jei sugeneravote naują įkėlimo raktą: naudokite naują įkėlimo raktą leidimams pasirašyti, prieš juos įkeldami į „Google Play“. Įkėlus juos, „Google“ patikrina leidimą, ar nėra įkėlimo rakto, kad patvirtintų jūsų tapatybę. JEI prarasite įkėlimo raktą, galite susisiekti su palaikymo komanda, kad nustatytų jį iš naujo.

Įkėlimo rakto kūrimas ir „Keystore“ failų naujinimas

Papildomos saugos sumetimais rekomenduojama pasirašyti programą naudojant naują įkėlimo raktą, o ne programos pasirašymo raktą.

Galite sukurti įkėlimo raktą pasirinkdami naudoti „Google Play“ programų pasirašymą arba sukurti įkėlimo raktą vėliau apsilankę skiltyje Leidimų tvarkymas > Programos pasirašymas.

Toliau nurodyta, kaip sukurti įkėlimo raktą.

  1. Vadovaukitės „Android“ kūrėjų svetainėje pateiktomis instrukcijomis. Laikykite raktą saugioje vietoje.
  2. Eksportuokite įkėlimo rakto sertifikatą PEM formatu. Pakeiskite pabrauktus argumentus:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Paraginti per paleidimo procesą įkelkite sertifikatą, kad užregistruotumėte jį „Google“.

Kai naudojate įkėlimo raktą

  • Jūsų įkėlimo raktas sistemoje „Google“ registruojamas tik siekiant nustatyti programos kūrėjo tapatybę.
  • Jūsų parašas pašalinamas iš visų įkeltų APK prieš siunčiant jį naudotojams.
Įkėlimo rakto apribojimai
  • Turi būti 2 048 ar daugiau bitų RSA raktas.
  • DSA raktai, EC raktai ir mažesni nei 2 048 bitų RSA raktai nepalaikomi.
„Keystore“ failų atnaujinimas

Štai keletas dalykų, kuriuos gali būti naudinga patikrinti ir atnaujinti sukūrus įkėlimo raktą:

  • vietines mašinas;
  • užrakintą serverį svetainėje (įvairius ACL);
  • debesyje priglobtą įrenginį (įvairius ACL);
  • priskirtas slaptų failų tvarkymo paslaugas;
  • (Git) saugyklas.

Programos pasirašymo rakto, skirto naujiems diegimams, naujovinimas

Tam tikromis aplinkybėmis galite teikti programos pasirašymo rakto naujovinimo užklausą. Naujasis raktas naudojamas naujiems diegimams ir programų naujiniams pasirašyti. Senasis programų pasirašymo raktas vis dar yra tinkamas naudotojų, kurie įdiegė programą prieš naujovinant raktą, naujiniams pasirašyti.

Kiekvienos programos pasirašymo raktą per visą laiką galima naujovinti tik vieną kartą. Tuo mažai tikėtinu atveju, kai turite kelias programas, kurioms naudojamas tas pats pasirašymo raktas, skirtas konkrečiai tam pačiam procesui vykdyti, negalėsite naujovinti šių programų raktų.

Toliau pateikiamos kelios priežastys, dėl kurių teikiama programos pasirašymo rakto naujovinimo užklausa.

  • Reikia naudoti kriptografiškai patikimesnį raktą.
  • Programos pasirašymo raktas buvo pažeistas.

Pastaba: programos pasirašymo rakto naujovinimo sistemoje „Play Console“ užklausa nesusijusi su rakto keitimu, pristatytu 3 versijos APK pasirašymo schemoje, skirtoje „Android P“ ir naujesnės versijos operacinei sistemai. „Google Play“ šio rakto keitimo tipo šiuo metu nepalaiko.

Svarbūs aspektai prieš pateikiant rakto naujovinimo užklausą

Prieš pateikiant užklausą naujovinti raktą, svarbu suprasti keitimus, kurių gali reikėti jį naujovinus.

  • Jei tą patį programos pasirašymo raktą naudojate kelioms programoms, kad galėtumėte tarp programų bendrinti duomenis ar kodą, turite atnaujinti programas, kad jos atpažintų ir naujojo, ir senojo programų pasirašymo raktų sertifikatus.
  • Jei programa naudoja API, prieš paskelbdami atnaujinimą būtinai užregistruokite naujojo ir senojo programų pasirašymo raktų sertifikatus pas API teikėjus, kad API veiktų toliau. Sertifikatai pasiekiami „Play Console“ programos pasirašymo puslapyje.  
  • Jei dauguma naudotojų įdiegia programos naujinius naudodami bendrinimą lygiarangių ryšiu, jie galės įdiegti tik naujinius, kurie pasirašyti naudojant tą patį raktą, kuriuo pasirašyta jau įdiegta programos versija. Jei jie negali atnaujinti programos, nes turi programos versiją, pasirašytą kitu raktu, norėdami naujovinti jie gali pašalinti ir įdiegti programą iš naujo.
Naujiems diegimams skirto rakto naujovinimo užklausos teikimas
  1. Prisijunkite prie „Play Console“.
  2. Pasirinkite programą.
  3. Kairiajame meniu pasirinkite Leidimų tvarkymas > Programos pasirašymas.
  4. Kortelėje „Naujovinkite programos pasirašymo raktą, skirtą naujiems diegimams“ pasirinkite Pateikti rakto naujovinimo užklausą.
  5. Pasirinkite parinktį.
  6. Atsižvelgiant į pasirinktą parinktį, gali reikėti susisiekti su palaikymo komanda, kad galėtumėte užbaigti užklausą.
  7. Leiskite „Google“ sugeneruoti naują programos pasirašymo raktą (rekomenduojama) arba įkelkite jį patys.
    • Jei naudojote tą patį raktą kaip programų pasirašymo ir įkėlimo raktą, naujovinę programos pasirašymo raktą, galite toliau naudoti senąjį programos pasirašymo raktą kaip įkėlimo raktą arba sugeneruoti naują įkėlimo raktą.

Geriausia praktika

  • Jei programą platinate ne tik sistemoje „Google Play“ arba planuojate tai daryti vėliau, galite sugeneruoti programos pasirašymo raktą, kurį norite naudoti kiekvienoje programų parduotuvėje, ir jį įkelti į sistemą „Google“ pasirinkę naudoti „Google Play“ programų pasirašymą.
  • Kad apsaugotumėte paskyrą, paskyrose, kurios gali pasiekti jūsų „Play Console“, įjunkite patvirtinimą dviem veiksmais.
  • Paskelbę programos komponentų rinkinį testavimo arba gamybinėje grupėje, galite apsilankyti programos komponentų rinkinio naršymo priemonėje ir atsisiųsti ZIP archyvą su visais konkretaus įrenginio APK. Šie APK pasirašomi naudojant programos pasirašymo raktą, o ZIP archyve esančius APK galite įdiegti įrenginyje naudodami komandinės eilutės priemonę „Bundletool“.
  • Kad užtikrintumėte papildomą apsaugą, generuokite naują įkėlimo raktą, kuris skiriasi nuo programos pasirašymo rakto.
  • Jei norite išbandyti APK, pasirašytą naudojant įkėlimo raktą, reikia užregistruoti įkėlimo raktą naudojant bet kurią paslaugą ar API, kuri autentifikuodama naudoja programos parašą (pvz., „Google“ žemėlapių API ar „Facebook“ SDK).
  • Jei naudojate bet kurią „Google“ API, būtų naudinga užregistruoti programos įkėlimo sertifikatą sistemoje „Google Cloud Console“.

Praradote įkėlimo raktą arba jis buvo pažeistas?

Jei praradote privatų įkėlimo raktą arba jis buvo pažeistas, galite sukurti naują raktą ir paprašyti paskyros savininko susisiekti su palaikymo komanda, kad nustatytų raktą iš naujo. Susisiekdamas su palaikymo komanda paskyros savininkas būtinai turi pridėti failą upload_certificate.pem.

Palaikymo komandai užregistravus naują įkėlimo raktą, gausite el. laišką ir galėsite įkelti „Keystore“ failus ir užregistruoti raktą API paslaugų teikėjų sistemose.

Svarbu: įkėlimo rakto nustatymas iš naujo neturi įtakos programos pasirašymo raktui, kuris naudojamas sistemoje „Google Play“, kad būtų galima pakartotinai pasirašyti APK prieš pateikiant juos naudotojams.

Ar tai buvo naudinga?
Kaip galime jį patobulinti?