2012-05-01 2 views
5

я подписал свою баночку по-разному, но я получаю выше сообщение об ошибке, когда я использую команду:Эта баночка содержит записи, у которых подписывающего сертификат истекает в течение шести месяцев

jarsigner -verify -verbose [my jar] 

Есть ли способ избавиться от этой ошибки? Мой код просто перестанет работать после шести месяцев, если он не будет повторно сертифицирован?

Вот весь набор команд для генерации ключа & подписать Jar:

keytool -genkey -keystore [keystore] -alias [alias] -validity 2000 
keytool -selfcert -keystore [keystore] -alias [alias] -validity 2000 
jarsigner -keystore [keystore] [jar] [alias] 

ответ

12

Есть ли способ избавиться от этой ошибки?

Это не ошибка, а предупреждение. Что касается того, как избежать этого, удостоверьтесь, что срок действия сертификата превышает 6 месяцев. Для самозаверяющего сертификата, это вопрос предоставления правильных параметров при генерации ключа. Вот keytool Example.

keytool -genkeypair -dname "cn=Mark Jones, ou=Java, o=Oracle, c=US" 
    -alias business -keypass <new password for private key> -keystore /working/mykeystore 
    -storepass <new password for keystore> -validity 180 

Важной частью является -validity 180. 180 дней, или около 6 месяцев, для этого примера. Используйте 1800 в течение 5 лет.

Будет ли мой код просто прекращать работу после шести месяцев, если он не будет повторно сертифицирован?

Не совсем.

  • Пользователь в некоторых системах будет предупрежден о том, что срок действия сертификата истек, и ему будет предложено принять его. Если они это сделают, это будет работать нормально. например «подпись истекло»:
  • Другие системы могут быть настроены на автоматическое отклонение устаревших сертификатов. На этих машинах код, скорее всего, никогда не запустится или, в редких случаях, не будет загружен, но будет применен песочница.

Я думал, что вывернута кэширование Java выключить, хотя, как это раздражает, когда пытаются разработать.

Кэширование апплетов во время тестирования - большая проблема. Я стараюсь избегать проверки апплетов в браузере, пока это абсолютно необходимо. Есть три способа, которыми я знаю, чтобы тестировать апплеты, которые не будут кэшировать классы.

  1. AppletViewer
  2. гибридный апплет/приложение
  3. Appleteer (немного лучше, чем апплет просмотр в некоторых отношениях, я разработал его некоторое время назад)
+0

Ok. Ну, у нас есть полный контроль над системами, на которые это программное обеспечение будет развернуто, поэтому, вероятно, это не проблема. Тем не менее, я бы чувствовал себя намного лучше, если бы мог просто избавиться от предупреждения в первую очередь. Я уже использовал аргумент validity, но он ничего не делал.Вот именно то, что я сделал, чтобы подписать банку: http://pastie.org/3846104 – David

+0

Извините, я не часто отправляю сообщения на SO, и я не понимал, что ввод отправляет редактирование/комментарий. Я отредактировал свой пост, чтобы исправить это. – David

+1

Дополнительные советы 1) Вопросы можно редактировать после их публикации. 2) Не размещайте ссылки на информацию, которая лучше редактируется в вопросе. 3) Когда вы добавляете ввод/вывод, HTML/XML или источник в вопросах, используйте форматирование кода. 4) Комментарии могут быть удалены. - 4) имеет значение, поскольку я уже следил за ссылкой, скопировал текст и отредактировал вопрос, чтобы добавить команды ввода (используя форматирование кода). –

Смежные вопросы