Pridanie digitálneho podpisu pre Android

V tomto článku sa dozviete, ako zadať kód pre Android (APK). Aplikáciu musíte podpísať pre Android ak ste si pri vytváraní a zostavovaní vybrali Android ako jednu z platforiem zabaliť projekt.

Dôležité

Ak by ste namiesto toho chceli podpísať aplikáciu AAB na distribúciu v službe Google Play, pozrite si Podpísanie svojej aplikácie.

Príprava počítača

Na začiatok potrebujete nasledujúce informácie:

Generujte kľúče

Poznámka

Ak ste už pri vytváraní registrácie aplikácie vygenerovali kľúče a hodnotu hash podpisu, prejdite na podpísanie balíka APK.

Použijeme keytool.exe (k dispozícii po inštalácii Android Studio, z umiestnenia priečinka "Disk:\Program Files\Android\Android Studio\jre\bin\keytool.exe") na vytvorenie certifikátu na podpísanie balíka aplikácie. Keytool sa používa na správu skladu kľúčov (databáza) kryptografických kľúčov, reťazcov certifikátov X.509 a dôveryhodných certifikátov.

Ak chcete vygenerovať kľúč, otvorte príkazový riadok a spustite nasledujúci príkaz:

keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000

Parametre:

  • genkey - príkaz na vygenerovanie kľúča.
  • alias - označuje alias, ktorý sa má v budúcnosti použiť na odkazovanie na položku skladu kľúčov obsahujúcu vygenerované kľúče.
  • keyalg - názov kľúčového algoritmu.
  • keystore - názov úložiska kľúčov, ktoré používate.
  • keysize - veľkosť každého kľúča, ktorý sa má vygenerovať.
  • validity - platnosť kľúča v počte dní.

Príklad:

  • Ak pripravujete Key Vault, PATH_TO_KEYSTORE by mal mať príponu .pfx.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000

  • Ak sa pripravujete na manuálne podpisovanie, PATH_TO_KEYSTORE by mal mať príponu .jks.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000

Snímka obrazovky s príkazom keytool s použitím parametrov vo vyššie uvedenom príklade.

Vygenerujte hash podpisu

Poznámka

Ak ste už pri vytváraní registrácie aplikácie vygenerovali kľúče a hodnotu hash podpisu, prejdite na podpísanie balíka APK.

Po vygenerovaní kľúča sa v nástroji keytool použije príkaz exportcert na export certifikátu úložiska kľúčov.

keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64

Parametre:

  • exportcert - načíta z úložiska kľúčov certifikát priradený k aliasu a uloží ho do súboru cert_file. Ak nie je zadaný žiadny súbor, certifikát sa odošle na výstup stdout.
  • alias - alias použitý pri generovaní kľúčov predtým.
  • keystore - názov úložiska kľúčov, ktoré používate.
  • openssl - vygeneruje kľúč SHA1 pre Android.

Pridajte vygenerovaný hash podpisu do URI presmerovania pri registrácii aplikácie.

Manuálne vykonajte konverziu hex SHA1 na kódovaný hash podpisu Base64

Ak váš hash podpisu nie je správne zakódovaný alebo je na portáli Azure neprijateľný, môže sa vám zobraziť nasledujúca chyba:

"Hash podpisu musí byť SHA1 s kódovaním base64."

Keď sa zobrazí táto chyba, skúste namiesto toho vygenerovať hash podpisu pomocou nasledujúcich krokov:

  1. Spustite keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE na vypísanie informácií o certifikáte v podrobnom režime.
  2. Skopírujte hodnotu SHA1 v časti Odtlačky prstov certifikátu z výstupu. Uistite sa, že kopírujete iba hexadecimálnu hodnotu.
    Napríklad: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  3. Na konverziu skopírovanej hexadecimálnej hodnoty odtlačku certifikátu na zakódovanú hodnotu Base64 použite akýkoľvek dostupný konvertor „Hexadecimal to Base64“.
    Príklad zakódovanej hodnoty Base64: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Skopírujte vygenerovanú hodnotu zakódovanú v Base64 ako Hash podpisu na portáli Azure pri registrácii aplikácie.

Podpíšte balík APK

Na podpísanie balíka APK použijeme nástroj apksigner. Tento nástroj vám umožňuje podpísať súbory APK a zabezpečiť, aby bol podpis balíka APK úspešne overený na všetkých Android platformách podporovaných súbormi APK.

Vyhľadanie apksinger

  1. Skontrolujte cestu Android v Android Studio.

  2. Vyberte Nástroj > SDK manažér > Umiestnenie Android SDK.

    Ak používate iOS, skontrolujte súbor apksigner z adresára buildTools Version :

    Prejdite do adresára SDK >build-tools > buildToolsVersion > lib a skontrolujte súbor apksigner.jar

Použite súbor apksigner

Spustite nasledujúci príkaz apksigner a podpíšte balík:

apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK

Parametre:

  • ks - cesta k úložisku kľúčov.
  • ks-key-alias - cesta aliasa kľúča k súboru APK.

Keď sa zobrazí výzva, zadajte heslo.

Viac informácií: Nástroje príkazového riadka Android Studio: apksigner

Distribúcia aplikácie

Balík môžete hostiť v distribučnej službe, ako je napríklad Centrum aplikácií. Ak chcete distribuovať pomocou Microsoft Intune, prečítajte si Pridanie aplikácie oblasti podnikania Android do Microsoft Intune. Ak sa chcete dozvedieť o udelení prístupu aplikácii k službe ochrany aplikácií Intune, pozrite si časť Poskytnite svojej aplikácii prístup k službe ochrany aplikácií Intune.

Pozrite si tiež