Подписание приложения в Google Play: нет хранилища ключей, просто .p12 - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь переключить свое существующее приложение на подписывание приложений в Google Play.Для тех, кто использует файл хранилища ключей, есть сообщение с отличными инструкциями: Как включить Google Play App Signing

Моя проблема в том, что вместо хранилища ключей у меня есть только файл .p12, которыйЯ не смог импортировать в файл хранилища ключей (длинная история).

Первым шагом для использования подписи приложения в Google Play является «Экспортировать закрытый ключ подписи приложения в открытый текстовый файл PEM.» Я сделал это, и теперь у меня есть открытый текстовый файл PEM, полученный из моегооригинал .p12.Из инструкций Google кажется, что им нужен только файл PEM с моим личным ключом, а не файл хранилища ключей.

Мой вопрос заключается в том, как использовать инструмент pepk для создания зашифрованного приложения, подписывающего личноеключ, который Google требует от файла PEM.

1 Ответ

0 голосов
/ 06 июня 2018

Oracle написала полные инструкции по преобразованию PEM в хранилище ключей.Это также покрывает p12.Это, вероятно, будет делать то, что вы хотите.

К сожалению, поисковые системы не очень хорошо это могут найти, так как они называют его «JKS», а не хранилище ключей.

Короче говоря:

Преобразуйте сертификат из PEM в PKCS12, используя следующую команду: openssl pkcs12 -export -out eneCert.pkcs12 -in eneCert.pem

Вы можетеигнорируйте предупреждающее сообщение, которое выдает эта команда.Введите и повторите пароль экспорта.Создайте, а затем удалите пустое хранилище доверенных сертификатов, используя следующие команды:

keytool -genkey -keyalg RSA -alias endeca -keystore truststore.ks
keytool -delete -alias endeca -keystore truststore.ks

Команда -genkey создает сертификат по умолчанию, показанный ниже.(Это временный сертификат, который впоследствии удаляется командой -delete, поэтому не имеет значения, какую информацию вы здесь вводите.)

Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: 
What is the name of your organizational unit?
[Unknown]:  
What is the name of your organization?
[Unknown]:  
What is the name of your City or Locality?
[Unknown]: 
What is the name of your State or Province?
[Unknown]: 
What is the two-letter country code for this unit?
[Unknown]: 
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes

Enter key password for <endeca>
      (RETURN if same as keystore password):
Re-enter new password:

Импортируйте CA в доверенное хранилище, используя следующую команду: keytool-import -v -trustcacerts -alias endeca-ca -file eneCA.pem -keystore truststore.ks

Введите пароль хранилища ключей.На приглашение "Доверять этому сертификату?"Тип да.Создайте пустой Java KeyStore, используя следующие команды:

keytool -genkey -keyalg RSA -alias endeca -keystore keystore.ks
keytool -delete -alias endeca -keystore keystore.ks

Команда -genkey создает сертификат по умолчанию, показанный ниже.(Это временный сертификат, который впоследствии удаляется командой -delete, поэтому не имеет значения, какую информацию вы здесь вводите.)

Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: 
What is the name of your organizational unit?
[Unknown]:  
What is the name of your organization?
[Unknown]:  
What is the name of your City or Locality?
[Unknown]: 
What is the name of your State or Province?
[Unknown]: 
What is the two-letter country code for this unit?
[Unknown]: 
Is CN="Unknown", OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes

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

keytool -v -importkeystore -srckeystore eneCert.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.ks -deststoretype JKS
...