Как работать с хранилищем ключей для Google Play
- Posted by swiki
- Posted on 16 мая, 2020
- Программирование
- No Comments.
При публикации приложения в Google Play нужно подписать приложение своим ключом. Обычно для этого используются специальные плагины для Android Studio или используются сторонние сервисы сборки. Например expo.io если разработка ведется с использованием React Native.
Для подписи используется специальное хранилище. В последнее время применяется современный стандарт PKCS#12. Но у многих приложений до сих пор используется старый вариант Java Keystore от Oracle. Более того, этот формат до сих пор используется в банках и различных службах.
Особенность этого формата в том, что в одном файле .jks может храниться несколько ключей и сертификатов. При этом паролей также может быть несколько — один обязательный на само хранилище и далее на каждый раздел свой.
В одном хранилище могут храниться все ключи для подписи всех приложений и работы с другими сервисами. Поэтому бывает что нужно посмотреть какие сертификаты есть в хранилище и попробовать протестировать пароль.
Давайте рассмотрим основные команды, которые могут пригодиться в работе.
Создание ключей
Создание ключа:keytool -genkey -alias mydomain -keyalg RSA -keystore <keystorefile> -keysize 2048
Создание CSR для существующего ключа
keytool -certreq -alias mydomain -keystore <keystorefile> -file mydomain.csr
Импорт корневого сертификата в хранилище
keytool -import -trustcacerts -alias root -file Thawte.crt -keystore <keystorefile>
keytool -import -trustcacerts -file /path/to/ca/ca.pem -alias CA_ALIAS -keystore $JAVA_HOME/jre/lib/security/cacerts
Генерация ключа вместе с созданием хранилища
keytool -genkey -keyalg RSA -alias selfsigned -keystore <keystorefile> -storepass <password> -validity 360 -keysize 2048
Проверки
Проверить сертификатkeytool -printcert -v -file mydomain.crt
Посмотреть список сертификатов в хранилище
keytool -list -v -keystore <keystorefile>
Посмотреть конкретный раздел (ключ)
keytool -list -v -keystore <keystorefile> -alias mydomain
Проверить и/или заменить пароль ключа/сертификата
keytool -list -keystore <keystorefile> -storepass <passwordtocheck>
Модификации
Изменить пароль хранилищаkeytool -storepasswd -new new_storepass -keystore keystore.jks
Экспорт сертификата
keytool -export -alias mydomain -file mydomain.crt -keystore keystore.jks
Удалить сертификат
keytool -delete -alias mydomain -keystore keystore.jks