Как работать с хранилищем ключей для Google Play

При публикации приложения в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *