Spec-Zone .ru
спецификации, руководства, описания, API
След: Развертывание
Урок: Упаковка Программ в Файлах JAR
Раздел: Подписание и Проверка Файлов JAR
Подписание Файлов JAR
Домашняя страница > Развертывание > Упаковка Программ в Файлах JAR

Подписание Файлов JAR

Вы используете Инструмент Подписания и Проверки JAR, чтобы подписать файлы JAR. Вы вызываете Инструмент Подписания и Проверки JAR при использовании команды jarsigner, таким образом, мы обратимся к этому как "Jarsigner" для краткости

Чтобы подписать файл JAR, у Вас должен сначала быть закрытый ключ. Закрытые ключи и их связанные сертификаты с открытым ключом сохранены в защищённых паролем базах данных, названных keystores. keystore может удержать клавиши многих потенциальных подписывающих лиц. Каждый ключ в keystore может быть идентифицирован псевдонимом, который обычно является именем подписывающего лица, которому принадлежит ключ. У ключа, принадлежащего Рите Джонс, мог бы быть псевдоним "rita", например.

Каноническая форма команды для того, чтобы подписать файл JAR

jarsigner jar-file alias

В этой команде:

Инструмент Jarsigner запросит Вас пароли для keystore и псевдонима.

Эта каноническая форма команды предполагает, что keystore, который будет использоваться, находится в файле под названием .keystore в Вашем корневом каталоге. Это создаст файлы сигнатурного и сигнатурного блока с именами x.SF и x.DSA соответственно, где x является первыми восемью буквами псевдонима, все преобразованные в верхний регистр. Эта основная команда перезапишет исходный файл JAR с подписанным файлом JAR.

Практически, можно хотеть использовать эту команду в соединении с один или больше этих опций, которые должны предшествовать пути jar-file:

Опции Команды Jarsigner
Опция Описание
 url -keystore Определяет keystore, который будет использоваться, если Вы не хотите использовать базу данных значения по умолчанию .keystore.
 Пароль -storepass Позволяет Вам вводить пароль keystore на командной строке, а не запрашиваться это.
 Пароль -keypass Позволяет Вам вводить пароль своего псевдонима на командной строке, а не запрашиваться это.
 Файл -sigfile Определяет базовое имя для.SF и.DSA файлов, если Вы не хотите, чтобы базовое имя было взято от Вашего псевдонима. файл должен быть составлен только прописных букв (A-Z), цифр (0-9), дефиса (-), и подчеркивание (_).
 Файл -signedjar Определяет имя подписанного файла JAR, который будет сгенерирован, если Вы не хотите, чтобы исходный файл без знака был перезаписан с подписанным файлом.

Пример

Давайте смотреть на несколько примеров подписания файла JAR с инструментом Jarsigner. В этих примерах мы примем:

Под этими предположениями Вы могли использовать эту команду, чтобы подписать файл JAR под названием app.jar:

jarsigner -keystore mykeys -storepass abc123 app.jar johndoe

Вы будете запрошены keystore пароль. Поскольку эта команда не использует опцию -sigfile.SF и.DSA файлы, которые это создает, был бы назван JOHNDOE.SF и JOHNDOE.DSA. Поскольку команда не использует опцию -signedjar, получающийся подписанный файл перезапишет оригинальную версию app.jar.

Давайте смотреть на то, что произошло бы, если бы Вы использовали различную комбинацию опций:

jarsigner -keystore mykeys -sigfile SIG 
          -signedjar SignedApp.jar app.jar johndoe

На сей раз Вы были бы запрошены ввести пароли и для keystore и для Вашего псевдонима, потому что пароли не определяются на командной строке. Файлы сигнатурного и сигнатурного блока назвали бы SIG.SF и SIG.DSA, соответственно, и подписанным файлом JAR, SignedApp.jar будет помещен в текущий каталог. Исходный файл JAR без знака остался бы неизменным.

Дополнительная информация

Полные ссылочные страницы для Инструмента Подписания и Проверки JAR являются онлайновыми: Сводка Средств обеспечения безопасности


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Понимание Подписания и Проверки
Следующая страница: Проверка Подписанных Файлов JAR