Почему Java Web Start сообщает, что подписанный файл JAR не подписан?

Java Web Start (JWS) говорит, что не может запустить мое приложение, потому что файл JAR не подписан:

Error: Unsigned application requesting unrestricted access to system
       Unsigned resource: .../dynaccn.jar

Но JAR-файл подписан :

$ jarsigner -keystore ... dynaccn.jar idv
$ jar tf dynaccn.jar
META-INF/MANIFEST.MF
META-INF/IDV.SF
META-INF/IDV.RSA
META-INF/
edu/
edu/ucar/
edu/ucar/unidata/
edu/ucar/unidata/dynaccn/
App$1.class
...
$ jarsigner -verbose -certs -verify dynaccn.jar
       28325 Tue Aug 17 09:41:58 MDT 2010 META-INF/MANIFEST.MF
       28404 Tue Aug 17 09:41:58 MDT 2010 META-INF/IDV.SF
        2880 Tue Aug 17 09:41:58 MDT 2010 META-INF/IDV.RSA
           0 Tue Aug 17 09:41:58 MDT 2010 META-INF/
           0 Mon Aug 16 10:10:34 MDT 2010 edu/
           0 Mon Aug 16 10:10:34 MDT 2010 edu/ucar/
           0 Mon Aug 16 10:10:34 MDT 2010 edu/ucar/unidata/
           0 Mon Aug 16 10:10:34 MDT 2010 edu/ucar/unidata/dynaccn/
...
sm       486 Mon Aug 16 10:10:34 MDT 2010 App$1.class

      X.509, CN=University Corporation for Atmospheric Research, OU=UNIDATA, O=University Corporation for Atmospheric Research, L=Boulder, ST=Colorado, C=US
      [certificate will expire on 2/6/11 4:59 PM]
      X.509, CN=Thawte Code Signing CA, O=Thawte Consulting (Pty) Ltd., C=ZA
      [certificate is valid from 8/5/03 6:00 PM to 8/5/13 5:59 PM]
      [KeyUsage extension does not support code signing]
      X.509, EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
      [certificate is valid from 7/31/96 6:00 PM to 12/31/20 4:59 PM]
      [CertPath not validated: null]
...
jar verified.

Warning: 
This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.
This jar contains entries whose signer certificate will expire within six months. 
This jar contains entries whose certificate chain is not validated.
This jar contains signed entries that's not signed by alias in this keystore.

, и JWS, и мой браузер имеют сертификат для «Thawte Premium Server CA».

Проблема возникает, даже если кэш JWS и область загрузки браузера пусты.

Я не верю, что сообщение «KeyUsage» является релевантным, потому что 1) такая же цепочка сертификатов используется для другого приложения, которое успешно запускается ; и 2) прочитанная мною документация указывает, что CA для подписи кода Thawte используется только для проверки сертификата UNIDATA, а не для подписи кода.

Моя среда - Linux 2.6.27.41-170.2.117.fc10.x86_64, Firefox 3.6 .8 (i686) и Java 1.7.0-ea.

Почему это приложение не запускается?

ОБНОВЛЕНИЕ: я обнаружил, что приложение запускается, если атрибут «codebase» в файле JNLP ссылается на локальный каталог, но не в том случае, если он ссылается на URL, лежащий в основе аутентификации пользователя. В последнем случае, javaws (1) интерпретирует веб-страницу аутентификации как файл JNLP (с очевидными результатами), если вызывается из командной строки. Если он вызывается сценарием "deployJava" с веб-страницы аутентификации пользователя (так что в браузере есть cookie-файл сеанса), то javaws (1) говорит, что приложение не подписано. Я нахожу оба этих режима сбоя странными, так как документация javaws (1) говорит, что она понимает аутентификацию пользователя на веб-страницах и что файл jar подписан.

13
задан Steve Emmerson 19 August 2010 в 23:21
поделиться

1 ответ

  1. убедитесь, что вы не используете кэшированную (беззнаковую) версию jar-файла. Очистите временную папку, в которой JWS загружает jar-файлы
  2. , убедитесь, что все зависимости (jar-файлы) вашего jar-файла, для которых требуются специальные разрешения, также подписаны
2
ответ дан 2 December 2019 в 02:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: