Генерация самостоятельно подписанного сертификата с помощью утилиты keytool
Утилита keytool работает с базой секретных ключей и соответствующих им сертификатов X.509 (стандарт для цифровых сертификатов). Эта утилита поставляется вместе с JDK и находится в каталоге bin этого пакета. Если вы выполнили инструкции из главы 2 по изменению переменной среды PATH, то в ней должен присутствовать каталог bin для JDK.
В этом разделе мы покажем, как сгенерировать хранилище ключей с одним элементом, которое в дальнейшем будет использоваться для подписания .apk-файлов. Чтобы сгенерировать элемент хранилища ключей, выполните следующие шаги.
- Создайте папку для хранилища ключей — например, C:\android\release\.
- Откройте окно инструментов и запустите утилиту keytool с параметрами.
Если не указать в командной строке пароли, описанные в табл. 14.1, keytool запросит их во время выполнения. Если вы не единственный пользователь компьютера, то надежнее как раз не указывать пароли -storepass и -keypass в командной строке, а ввести их по запросу.
Команда из а 14.1 сгенерирует в папке хранилища ключей файл базы данных для этого хранилища, который имеет имя release.keystore. Срок действительности этого элемента задан равным 14 000 дней (примерно 38 лет) — довольно длительный срок. Дело в том, что документация по Android рекомендует выбирать срок действительности достаточно долгим, чтобы вместить весь цикл жизни приложения — а в него входят и многочисленные обновления. Рекомендуется указывать срок не менее 25 лет. Если вы собираетесь публиковать приложение на сайте Android Market, ваш сертификат должен быть действителен, по крайней мере, до 22 октября 2033 г. При выгрузке на Android Market срок действительности каждого приложения проверяется сравнением с указанной датой.
Поскольку сертификат в любом обновлении приложения должен соответствовать сертификату, который использовался в самом начале, тщательно берегите файл хранилища ключей! В случае утери восстановить его будет невозможно, и вы не сможете обновлять свое приложение — придется вместо него выпускать совершенно новое приложение.
Но вернемся к утилите keytool. Аргумент alias представляет собой уникальное имя, назначаемое элементу в базе хранилища ключей; это имя в дальнейшем используется для обращения к данному элементу. Если запустить команду из а 14.1, keytool задаст несколько вопросов (рис. 14.1), а затем сгенерирует базу данных для хранилища ключей и элемент в ней. На рис. 14.1 обратите внимание, что поскольку команда была выдана в каталоге C:\android\release, указывать полный путь к файлу release.keystore не обязательно.
После создания файла хранилища ключей для производственных сертификатов этот файл можно использовать для добавления дополнительных сертификатов. Просто снова запустите утилиту keytool и укажите существующий файл хранилища.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.