Jarsigner: этот jar содержит записи, цепочка сертификатов которых не проверена.

Я получаю следующую ошибку в самоподписанной банке:

jar verified.

Warning:
This jar contains entries whose certificate chain is not validated.

Re-run with the -verbose and -certs options for more details.

Я подписал баночку так:

"C:\Program Files\Java\jdk1.7.0\bin\jarsigner" -keystore myKeyStore myJar.jar myAlias

В моей банке есть 2 точки входа: одна для веб-запуска Java и одна для апплета.

  • Если я запускаю банку с помощью веб-запуска Java, это не имеет значения.
  • Но если я запускаю банку как апплет. В какой-то момент я получаю сильное предупреждение системы безопасности, когда пытаюсь получить доступ к растровому ресурсу, встроенному в банку.

Использование параметров -verbose и -certs показывает много строк. А я ничего в этом не понимаю. Это вывод: output.txt (часть из 6307 строк, воспроизведенных ниже).

s     157850 Tue Nov 08 12:57:44 CET 2011 META-INF/MANIFEST.MF

      X.509, O=keyja.com
      [certificate is valid from 17/08/11 17:32 to 24/07/11 17:32]
      [CertPath not validated: null]

      112909 Tue Nov 08 12:57:44 CET 2011 META-INF/KEYJA_CO.SF
        1108 Tue Nov 08 12:57:44 CET 2011 META-INF/KEYJA_CO.RSA
sm       180 Tue Nov 08 12:16:40 CET 2011 com/keyja/client/a/a/a/k.class

      X.509, O=keyja.com
      [certificate is valid from 17/08/11 17:32 to 24/07/11 17:32]
      [CertPath not validated: null]

sm       252 Tue Nov 08 12:16:40 CET 2011 com/keyja/client/a/a/a/r.class
...
(around 6000 lines of other output along the same lines)

  s = signature was verified 
  m = entry is listed in manifest
  k = at least one certificate was found in keystore
  i = at least one certificate was found in identity scope

jar verified.

Warning: 
This jar contains entries whose certificate chain is not validated.

Как подписать файл jar?


person Joel    schedule 08.11.2011    source источник
comment
Это имеет смысл. Я добавил ссылку на вывод.   -  person Joel    schedule 08.11.2011
comment
Если я запускаю банку в режиме веб-запуска Java, это не имеет значения. Какой уровень разрешений безопасности запрашивает запуск JWS?   -  person Andrew Thompson    schedule 08.11.2011
comment
Если апплет также работает в песочнице, зачем вообще подписывать код?   -  person Andrew Thompson    schedule 08.11.2011
comment
потому что апплет не работает, если я его не подпишу. это должно, но это не так, по причине, которую я игнорирую.   -  person Joel    schedule 08.11.2011
comment
давайте продолжим это обсуждение в чате   -  person Andrew Thompson    schedule 08.11.2011


Ответы (3)


Всего одна строка отвечает на ваш вопрос, я думаю. И если вы присмотритесь, вы увидите это. Вот


[сертификат действителен с 17.08.11 17:32 по 24.07.11 17:32]

Надеюсь, вы знаете, что сегодня не 24 июля, поэтому вам просто нужно повторно подписать свое приложение.

person user592704    schedule 08.11.2011
comment
Если сертификат больше не действителен, ему придется заново создать сертификат, чтобы продлить срок действия. - person John Haager; 09.11.2011
comment
Нет, это 24.07.2111, и это действительно. - person Joel; 09.11.2011
comment
Мне просто интересно... Это действительно с 17.08.2111 17:32 до 24.07.2111 17:32 ? - person user592704; 09.11.2011
comment
Не могли бы вы предоставить ключ и даты проверки сертификата? - person user592704; 13.11.2011

Спасибо, Эндрю Томпсон. Я не подписал свой файл jar и нашел ошибку. Лучше без подписи, в этом вы правы, потому что подписание не имеет смысла, так как мне не нужно выходить из песочницы.

Кстати, ошибка заключалась в использовании библиотеки jnlp.jar. Чтобы заставить его работать, я запустил апплет, используя код jnlp/applet вместо стандартного тега.

person Joel    schedule 09.11.2011
comment
так как ты это исправил? немного подробнее пожалуйста - person Cute Bear; 13.09.2012
comment
Я запустил апплет, используя код jnlp/applet вместо стандартного тега апплета html. docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/ - person Joel; 13.09.2012

У меня точно такая же проблема.

В новых версиях Java 7 и Java 6 есть изменения в проверке. Идентификатор ошибки: 6861062 java class_security Отключить MD2 при проверке цепочки сертификатов.

При подписании файла Jara у меня появилось предупреждающее сообщение и при выполнении команды: jarsigner MyTools.jar -verify -verbose -certs

У меня было сообщение: X.509, OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US [сертификат действителен с 29.01.96 01:00 по 02.08.28 01:59] [ CertPath не проверен: проверка ограничений алгоритма не удалась: MD2withRSA]

Мое решение: - используйте другую версию JDK для подписи и плагин JRE. - Обновите безопасность сертификата, чтобы не использовать этот алгоритм.

Я надеюсь, что это поможет вам.

С уважением

person ecingala    schedule 13.09.2013