Оценок пока нет Способы генерации ключей подписи и хранилища ключей

  1. Основные положения электронной подписи приложений
  2. Способы генерации ключей подписи и хранилища ключей
  3. Разница между хранилищами *.jks и *.keystore
  4. Ручная подписка APK
  5. Подписка APK на Google Play
  6. Соображения подписи, безопасности и удаление подписки из сборки APK
  7. Автоматизация процесса подписи на этапе сборки APK
  8. Автоматизация подписи гибридных приложений Android

В независимости, как вы будет управлять своими ключами и хранилищами ключей, вы можете использовать Android Studio для подписки ваших файлов APK(с помощью ключа загрузки или ключа подписи приложения), либо вручную, либо путем настройки процесса сборки для автоматического подписания APK.

Если вы решите управлять и защищать свой собственный ключ подписи приложения и хранилище ключей, вы подпишете свои APK с помощью своего ключа подписи приложения. Если вы решите использовать Google Play App Signing для управления и защиты своего ключа подписи и хранилища ключей, вы подпишете APK с помощью своего ключа загрузки.

Создание ключа и хранилища ключей при помощи встроенного мастера IDE Android Studio

Вы можете сгенерировать новый или загрузить существующий в встроенном мастере работы с ключами подписи Android Studio, используя следующие шаги:

  1. В панели меню нажать на Build > Generate Signed APK;
  2. Выбрать модуль из выпадающего меню и нажать Next;
  3. Нажать на Create new для создания нового ключа и хранилища ключей;
  4. В окне New Key Store предоставить информации о распространителе в лице вас, как разработчика

Keystore(Хранилище ключей)

  • Key store path: Выберите местонахождение, где было создано хранилище ключей;
  • Password: Создайте и подтвердите пароль безопасности для хранилища ваших ключей.

Key(ключ)

  • Alias: Введите идентификационное название для вашего ключа;
  • Password: Создайте и подтвердите пароль безопасности для вашего ключа. Этот пароль должен отличаться от пароля хранилища ключей в целях безопасности;
  • Validity (years): Установите длину времени в годах, в течении которого данный ключ будет валиден. Ваш ключ может иметь валидность до 25 лет. В течении этого времени у вас есть возможность выпускать обновления и подписывать приложение данным ключом и это служит жизненным циклом приложения.
  • Certificate: Введите некоторую информацию для вашего сертификата. данная информация не показывается в вашем приложении, но включается в ваш сертификат, как часть файла APK.
Создание нового хранилища ключей в Android Studio.
  • Закончив форму, нажмите «ОК».

Создание ключа и хранилища ключей при помощи консольных утилиты keytool в составе Java SDK

Для данного метода генерации ключа нам понадобится утилита keytool. Ее можно найти по адресу C:\Program Files\Java\jdk1.x.x_xxx\bin. Утилита может создавать новые ключи и показывать информацию о уже существующих ключах в файле хранилища ключей.

К примеру выясним, какие ключи есть в хранилище debug.keystore, который расположен по пути C:\Users\WebSofter\.android, используем команду list. С помощью параметров keystore и storepass укажем имя файла хранилища и пароль к хранилищу

keytool -list -keystore debug.keystore -storepass android

Замечание. Если команда keytool вызывает ошибку, что такая команда не найдена, то это значит, что путь к данной программе не добавлен в переменные среды Windows и это следует исправить.

Команда нам показывает, что в данном хранилище хранится один ключ с алиасом androiddebugkey, и создан он был 11.11.2016. Этот ключ и используется Android SDK для подписи нашего приложения, когда формируется debug — APK. Хранилище и ключ имеют одинаковый пароль — android.

Теперь создадим свой собственный ключ, которым мы могли бы подписать release — APK, т.е. unaligned — APK или иначе говоря, неподписанный релиз APK.

Для создания используется подкоманда genkey и к ней идут свои параметры

keytool -genkey -v -keystore keys.keystore -keyalg RSA -keysize 2048 -storepass spassword -alias keyname1 -keypass keypassword1 -dname “CN=John Doe O=WebSofter C=RU” -validity 10000

Параметры в данной команде имеют следующие предназначения:

  • keystore — имя файла хранилища
  • storepass — пароль к хранилищу
  • alias — алиас создаваемого ключа
  • keypass — пароль к ключу
  • dname — информация о владельце ключа
  • validity — срок действия ключа (в днях)

Значение dname задается в определенном формате. В данном случае указаны только имя, организация и страна.

После того, как мы выполнили данную команду с нужными нам параметрами в папке, где выполнилась данная команда появится созданный нами хранилище ключей

Если сейчас посмотреть в это хранилище, введя пароль, который мы выше указали, то мы увидим тот ключ, который мы выше добавляли

Если, после создания файла хранилища с первым ключом мы хотим создать и последующие, то команду добавления можно записать в виде

keytool -genkey -keystore keys.keystore -keyalg RSA -keysize 2048 -alias keyname2 -validity 10000

При вводе таким образом нет необходимости в одной строке заполнять все параметры и программа шаг за шагом сама будет запрашивать нужную информацию заполнения данных ключа.

Команду list можно еще выполнить с параметром v. Этот параметр добавляет информативности

Как можно заметить, выводится полная информация о владельце сертификата, дата создания, дата истечения срока и т.д.

Параметр v также можно использовать и с командой genkey. После создания ключа будет выведено немного информации о нем в консоль.

Другие методы создания и подписи

Пожалуй, сюда можно добавить такие инструменты, как:

  • apk-signer — простой инструмент командной строки для подписи apk
  • APK Signing Tool — этот инструмент с оконным интерфейсом позволяет вам подписать APK с вашим хранилищем ключей. Вы можете переопределить хранилище демо-версий и использовать свое собственное хранилище ключей перед загрузкой приложения в Google Play.
  • APK Signer — инструмент с оконным интерфейсом упрощает создание файла хранилища ключей.

Что дальше? Дальше — подписать APK

Продолжайте вручную подписывать APK по статье «Ручная подписка APK», если вы хотите сгенерировать APK, подписанный вашим новым ключом, нажав «Ok», или нажмите «Cancel», если вы хотите только генерировать ключ и хранилище ключей и не подписывать APK.

Если вы хотите использовать подписку на Google Play по статье «Подписка APK на Google Play», перейдите к разделу «Управление ключами подписи приложения» и следуйте инструкциям по настройке подписки на Google Play.

Пожалуйста, оцените материал

WebSofter

Web - технологии