Користите Google Play потписивање апликација

Помоћу Google Play потписивања апликација Google управља кључем за потписивање апликација уместо вас, штити га и користи га да би потписао APK-ове за дистрибуцију. То је безбедан начин чувања кључа за потписивање апликација који вас штити ако некад изгубите кључ или он постане угрожен.

Важно: Да бисте користили Android App Bundle-ове, препоручени формат за објављивање апликација, треба да се региструјете за Google Play потписивање апликација пре него што отпремите скуп апликација у Play конзолу.

Да бисте га омогућили, морате да будете власник налога или корисник са глобалним дозволама „Управљање производним верзијама“ и морате да прихватите Услове коришћења услуге. Можете да региструјте апликације за Google Play потписивање апликација једну по једну.

Како ово функционише

Када користите Google Play потписивање апликација, ваши кључеви се чувају на истој инфраструктури коју Google користи за чување својих кључева. Кључеве штити Google услуга за управљање кључевима. Ако желите да сазнате више о Google техничкој инфраструктури, прочитајте Google Cloud Security Whitepapers (Бела књига за безбедност Google клауда).

Android апликације се потписују помоћу приватног кључа. Да бисте омогућили да ажурирања апликација буду поуздана, сваки приватни кључ има повезан јавни сертификат који уређаји и услуге користе да би потврдили да је апликација из поузданог извора. Уређаји прихватају ажурирања само када се потпис подудара са потписом инсталиране апликације. Ако дозволите да Google управља кључем за потписивање апликација, овај процес је безбеднији.

Напомена: Коришћење Google Play потписивања апликација је опционално. Уместо коришћења скупа апликација и даље можете да отпремате APK и да управљате сопственим кључевима. Међутим, ако изгубите складиште кључева или оно постане угрожено, нећете моћи да ажурирате апликацију ако не објавите нову апликацију са новим називом пакета.

Описи кључева, артефаката и алатки
Термин Опис
Кључ за потписивање апликација

Кључ који Google Play користи да би потписао APK-ове који се испоручују на уређај корисника. Када омогућите Google Play потписивање апликација, можете да отпремите постојећи кључ за потписивање апликација или Google може да га генерише за вас.

Кључ за потписивање апликација више не може да се промени када објавите апликацију. Не откривајте кључ за потписивање апликација, али јавни сертификат можете да делите са другима.

Кључ за отпремање

Кључ који користите за потписивање скупа датотека или APK-а пре него што га отпремите на Google Play. Не откривајте кључ за отпремање, али јавни сертификат можете да делите са другима. Из безбедносних разлога препоручујемо да се кључ за потписивање апликација и кључ за отпремање разликују.

Кључ за отпремање можете да генеришете на два начина:

  • Помоћу кључа за потписивање апликација: Ако Google генерише кључ за потписивање апликација за вас када омогућите потписивање апликација, кључ који сте употребили за потписивање прве верзије ће бити и кључ за отпремање.
  • Помоћу посебног кључа за отпремање: Ако доставите кључ за потписивање апликација када омогућите потписивање апликација, имаћете опцију да генеришете нови кључ за отпремање ради додатне безбедности. Ако га не генеришете, користите кључ за потписивање апликација као кључ за отпремање да бисте потписивали верзије.
Сертификат (.der или .pem)

Сертификат садржи јавни кључ и додатне информације за идентификацију власника кључа. Јавни сертификат кључа омогућава да сви провере ко је потписао скуп апликација или APK и можете да га делите са свима јер не обухвата приватни кључ.

Да бисте регистровали кључеве за потписивање апликација код добављача API-ја, можете да преузмете јавни сертификат за кључ за потписивање апликација и кључ за отпремање на страници Потписивање апликација у Play конзоли. Јавни сертификат кључа може да се дели са свима. Не обухвата ваш приватни кључ.

Дигитални отисак сертификата

Кратак и јединствен приказ сертификата који добављачи API-ја често захтевају заједно са називом пакета да би регистровали апликацију за коришћење њихове услуге.

Дигитални отисци MD5, SHA-1 и SHA-256 за сертификате за отпремање и потписивање апликација се налазе на страници Потписивање апликација у Play конзоли. Други дигитални отисци могу да се добију и преузимањем оригиналног сертификата (.der) са исте странице.

Java складиште кључева (.jks или .keystore) Складиште безбедносних сертификата и приватних кључева.
Алатка Play Encrypt Private Key (PEPK)

Алатка за извоз приватних кључева из Java складишта кључева и шифровање ради преноса на Google Play.

Када доставите кључ за потписивање апликација који ће Google користити, изаберите опцију за извоз и отпремање кључа (и јавног сертификата ако је то потребно) и пратите упутства за преузимање и коришћење алатке. Ако то желите, можете да преузмете, прегледате и користите отворени изворни кôд алатке PEPK.

Процес потписивања апликација

Можете да отпремите APK-ове потписане оригиналним кључем за потписивање апликација пре или после омогућавања Google Play потписивања апликација.

Ако почнете да користите Android App Bundle-ове, можете да их тестирате на каналима за тестирање док користите постојећу производну верзију APK-а. Ево како процес функционише:

  1. Потпишите скуп апликација или APK и отпремите га у Play конзолу.
  2. У зависности од тога шта отпремате, ево како се процес потписивања разликује:
    • Скуп апликација: Google генерише оптимизоване APK-ове из скупа апликација и потписује их помоћу кључа за потписивање апликација.
    • APK потписан кључем за отпремање: Google проверава ваш потпис и уклања га из APK-а, а затим поново потписује APK кључем за потписивање апликација.
    • APK потписан кључем за потписивање апликација: Google проверава потпис.
  3. Google испоручује потписане APK-ове кориснику.

Омогућите Google Play потписивање апликација

Нове апликације

1. корак: Направите кључ за отпремање

  1. Пратећи ова упутства направите кључ за отпремање.
  2. Потпишите нови APK помоћу кључа за отпремање.

2. корак: Припремите верзију

  1. Пратите упутства да бисте припремили и представили верзију.
  2. Када изаберете верзију за објављивање, конфигуришите потписивање апликација у одељку „Дозволите да Google штити кључ за потписивање апликација и управља њиме“.
  3. Изаберите Настави, чиме генерисани кључ постаје кључ за отпремање који ћете користити за потписивање будућих верзија или Напредне опције, које обухватају следеће:
    • Користите исти кључ као другу апликацију на налогу програмера (2. опција).
    • Отпремите постојећи кључ за потписивање апликација (2, 3 и 4. опција): Одаберите опције за извоз и отпремање које вам највише одговарају. Када отпремите кључ за отпремање апликација и јавни сертификат, можете да направите кључ за отпремање или наставите да користите кључ за потписивање апликација као кључ за отпремање.

Напомена: Треба да прихватите услове коришћења услуге и да омогућите потписивање апликација да бисте наставили.

3. корак: Региструјте кључ за потписивање апликација код добављача API-ја

Ако апликација користи неки API, вероватно треба да региструјете сертификат кључа који Google користи за потписивање апликације ради потврде идентитета. Ево где можете да пронађете сертификат:

  1. Пријавите се у Play конзолу.
  2. Изаберите апликацију.
  3. У левом менију изаберите Управљање верзијама > Потписивање апликација.
  4. Копирајте дигиталне отиске (MD5, SHA-1 и SHA-256) сертификата за потписивање апликација.
    • Ако добављач API-ја тражи неки други тип дигиталног отиска, можете и да преузмете оригинални сертификат у формату .der и да га конвертујете помоћу алатки за трансформацију у складу са захтевима добављача API-ја.
Постојеће апликације

1. корак: Региструјте се за Google Play потписивање апликација

  1. Пријавите се у Play конзолу.
  2. Изаберите апликацију.
  3. У левом менију изаберите Управљање верзијама > Потписивање апликација.
  4. Ако то нисте урадили, прегледајте Услове коришћења услуге и изаберите Прихватам.

2. корак: Пошаљите оригинални кључ Google-у и направите кључ за отпремање

  1. Пронађите оригинални кључ за потписивање апликација.
  2. Пријавите се у Play конзолу.
  3. Изаберите апликацију.
  4. У левом менију изаберите Управљање верзијама > Потписивање апликација.
  5. Изаберите опцију за извоз и отпремање која највише одговара процесу објављивања и отпремите постојећи кључ за потписивање апликација.

3. корак: Направите кључ за отпремање (опционално и препоручено)

  1. Направите кључ за отпремање и отпремите сертификат на Google Play.
    • Можете и да наставите да користите кључ за потписивање апликација као кључ за отпремање.
  2. Копирајте дигиталне отиске (MD5, SHA-1 и SHA-256) сертификата за потписивање апликација.
    • У сврхе тестирања можда ћете морати да региструјете сертификат кључа за отпремање код добављача API-ја помоћу дигиталног отиска сертификата и кључа за потписивање апликација.

4. корак: Потпишите следеће ажурирање апликације помоћу кључа за отпремање

Када објавите ажурирања за апликацију, треба да их потпишете кључем за отпремање.

  • Ако нисте генерисали нови кључ за отпремање: Наставите да користите оригинални кључ за отпремање да бисте потписивали верзије пре него што их отпремите на Google Play. Ако изгубите кључ за потписивање апликација, можете да генеришете нови кључ за отпремање и региструјте га на Google-у да бисте наставили са ажурирањем апликације.
  • Ако сте генерисали нови кључ за отпремање: Користите нови кључ за отпремање да бисте потписивали верзије пре него што их отпремите на Google Play. Када их отпремите, Google проверава кључ за отпремање за верзију да би потврдио ваш идентитет. Ако изгубите кључ за отпремање, можете да контактирате подршку да бисте га ресетовали.

Направите кључ за отпремање и ажурирајте складиште кључева

Да бисте побољшали безбедност, препоручујемо да апликацију потписујете помоћу новог кључа за отпремање уместо кључем за потписивање апликација.

Можете да направите кључ за отпремање када омогућите Google Play потписивање апликација или можете касније да направите кључ за отпремање када посетите одељак Управљање верзијама > Потписивање апликација.

Ево како можете да направите кључ за отпремање:

  1. Пратите упутства са сајта за Android програмере. Сачувајте кључ на безбедном месту.
  2. Извезите сертификат за кључ за отпремање у PEM формату. Замените следеће подвучене аргументе:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Када се то од вас затражи током процеса објављивања, отпремите сертификат да бисте га регистровали за Google.

Када користите кључ за отпремање:

  • Кључ за отпремање је регистрован само за Google да би потврдио идентитет аутора апликације.
  • Потпис се уклања из свих отпремљених APK-ова пре него што се пошаљу корисницима.
Ограничења за кључ за отпремање
  • Мора да буде RSA кључ од најмање 2048 битова.
  • DSA, EC или RSA кључеви мањи од 2048 битова нису подржани.
Ажурирајте складишта кључева

Када направите кључ за отпремање, ево неких локација које можете да проверите и ажурирате:

  • Локални уређаји
  • Закључани локални сервер (различити ACL-ови)
  • Уређај у клауду (различити ACL-ови)
  • Наменске услуге за управљање тајним садржајем
  • (Git) складишта

Надоградите кључ за потписивање апликација за нова инсталирања

У неким случајевима можете да затражите надоградњу кључа за потписивање апликација. Нови кључ се користи за потписивање нових инсталација и ажурирања апликација. Стара верзија кључа за потписивање апликација се и даље користи за потписивање ажурирања код корисника који су инсталирали апликацију пре надоградње кључа.

Кључ за потписивање апликација може да се надогради само једном током животног века апликације. У мало вероватном случају да имате више апликација које користе исти кључ за потписивање да би се покренуле у истом процесу, не можете да користите надоградњу кључа за те апликације.

Ево неколико разлога да затражите надоградњу кључа за потписивање апликација:

  • Треба вам криптографски јачи кључ.
  • Кључ за потписивање апликација је угрожен.

Напомена: Тражење надоградње кључа за потписивање апликација на Play конзоли није повезано са ротирањем кључева уведеним у верзији 3 APK шеме потписивања за Android P и новије верзије. Google Play тренутно не подржава овај тип ротације кључева.

Важне информације пре тражења надоградње кључа

Пре него што затражите надоградњу кључа, важно је да разумете промене које морате да обавите када се надоградња доврши.

  • Ако користите исти кључ за потписивање више апликација да бисте делили податке или кôд међу њима, треба да ажурирате апликације тако да препознају и нови и стари сертификат кључа за потписивање апликација.
  • Ако апликација користи API-је, пре ажурирања апликације обавезно региструјте сертификате за нови и стари кључ за потписивање апликација код добављача API-ја пре него што објавите ажурирање да бисте били сигурни да ће API-ји и даље радити. Сертификати су доступни на страници Потписивање апликација на Play конзоли.  
  • Ако велики број корисника инсталира ажурирања путем дељења међу корисницима, моћи ће да инсталирају само ажурирања потписана кључем који има исту верзију као апликација коју су већ инсталирали. Ако не могу да ажурирају апликацију јер имају верзију апликације која је потписана другим кључем, имају опцију да деинсталирају и поново инсталирају апликацију да би добили ажурирање.
Затражите надоградњу кључа за нове инсталације
  1. Пријавите се у Play конзолу.
  2. Изаберите апликацију.
  3. У левом менију изаберите Управљање верзијама > Потписивање апликација.
  4. На картици „Надоградите кључ за потписивање апликација за нове инсталације“ изаберите Затражите надоградњу кључа.
  5. Изаберите опцију.
    • У зависности од опције коју изаберете, можда ћете морати да контактирате подршку да бисте довршили захтев.
  6. Дозволите Google-у да вам генерише нови кључ за потписивање апликација (препоручено) или га отпремите.
    • Када надоградите кључ за потписивање апликација, ако сте користили исти кључ за потписивање апликација и кључ за отпремање, можете да наставите да користите стари кључ за потписивање апликација као кључ за отпремање или да генеришете нови кључ за отпремање.

Најбоље праксе

  • Ако апликацију дистрибуирате изван Google Play-а или планирате да то урадите касније, можете да генеришете кључ за потписивање апликација који желите да користите за сваку ускладиштену апликацију, а затим га отпремите на Google када омогућите Google Play потписивање апликација.
  • Да бисте заштитили налог, укључите верификацију у 2 корака за налоге са приступом Play конзоли.
  • Када објавите скуп апликација као верзију за тестирање или производну верзију, можете да посетите истраживач за App Bundle да бисте преузели ZIP архиву са свим APK-има за одређени уређај. Ови APK-ови су потписани помоћу кључа за потписивање апликација и можете да инсталирате APK-ове из ZIP архиве на уређају помоћу услужног програма командне линије bundletool.
  • Да бисте побољшали безбедност, генеришите нови кључ за отпремање који се разликује од кључа за потписивање апликација.
  • Ако желите да тестирате APK потписан кључем за отпремање, треба да региструјете кључ за отпремање за било коју услугу или API који користи потпис апликације за потврду идентитета (попут API-ја за Google мапе или SDK-а за Facebook).
  • Ако користите Google API, можда би требало да региструјете сертификат за отпремање у Google Cloud Console-у за апликацију.

Изгубили сте кључ за отпремање или је он угрожен?

Ако сте изгубили приватни кључ за отпремање или је он угрожен, можете да направите нови кључ и затражите од власника налога да контактира подршку да би се кључ ресетовао. Када контактирате подршку, уверите се да је власник налога приложио датотеку upload_certificate.pem.

Када тим за подршку региструје нови кључ за отпремање, примићете имејл, а затим можете да ажурирате складишта кључева и региструјете кључ код добављача API-ја.

Важно: Ресетовање кључа за отпремање неће утицати на кључ за потписивање апликација који Google Play користи да би поново потписао APK-ове пре него што их испоручи корисницима.

Да ли вам је ово било корисно?
Како то можемо да побољшамо?