Понимание хранилища ключей, сертификатов и псевдонимов
является ли хранилище ключей фактическим сертификатом или это псевдоним сертификата?
Если я использую другой псевдоним, чтобы подписать мое приложение, это испортит обновления на рынке? Или мне нужно будет подписать свое приложение с другим хранилищем ключей, чтобы все испортить? И где информация под псевдонимом видна из?
1 ответ:
файл хранилища ключей, созданный Keytool хранит пары закрытых и открытых ключей. На каждую пару или запись, хранящуюся в хранилище ключей, ссылается уникальный псевдоним. Вкратце:
запись в хранилище ключей = закрытый + открытый ключ пара = идентифицируется псевдонимом
хранилище ключей защищает каждый закрытый ключ своим индивидуальным паролем, а также защищает целостность всего хранилища ключей с помощью (возможно, другого) пароля.
для например, когда вы подписываете приложение Android с помощью опции Export Signed Application Package инструмента Eclipse Android, вам предлагается сначала выбрать хранилище ключей, а затем выбрать один псевдоним/запись/пару из этого хранилища ключей. После предоставления паролей для хранилища ключей и выбранного псевдонима приложение подписывается, а открытый ключ (сертификат) для этого псевдонима внедряется в APK.
чтобы ответить на ваш вопрос, вы можете только выпустить обновление приложение, которое было подписано с псевдонимом "foo", подписав обновление снова с тем же псевдонимом. Потеря хранилища ключей, в котором хранится ваш псевдоним, помешает вам выпустить обновленную версию вашего приложения.однако есть способ подписать приложение с новым псевдонимом, но он включает клонирование существующего псевдонима в хранилище ключей с помощью keytool-keyclone:
создает новую запись в keystore, который имеет тот же закрытый ключ и цепочки сертификатов, как оригинальные вхождение.
исходная запись идентифицируется псевдоним (который по умолчанию имеет значение "mykey", если не предоставлять.) Новое направление) запись идентифицируется dest_alias. Если псевдоним назначения не предоставляется по адресу в командной строке пользователю будет предложено для него.
Если пароль закрытого ключа отличается от пароля хранилища ключей , тогда запись будет клонирована только в том случае, если действительный keypass поставлен. Это пароль чтобы защитить закрытый ключ, связанный с псевдонимом. Если нет ключа пароля на командная строка и закрытый ключ пароль отличается от пароль хранилища ключей, пользователь подтолкнул к этому. Закрытый ключ внутри клонированная запись может быть защищена с помощью другой пароль, если это необходимо. Если нет -новая опция поставляется в командная строка, пользователю предлагается пароль новые записи (и, возможно, выберите, чтобы это было то же самое, что и для клонированные записи частного ключевой.)
дополнительная информация:
http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html
http://developer.android.com/guide/publishing/app-signing.html
Comments