Java Web Start (JWS) dice che non può lanciare la mia domanda perché il file jar non è firmato:Perché Java Web Start dice che un file jar firmato non è firmato?
Error: Unsigned application requesting unrestricted access to system
Unsigned resource: .../dynaccn.jar
Ma il file jar è firmato:
$ 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, [email protected], 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.
ed entrambi JWS e il mio browser ha un certificato per "Thawte Premium Server CA".
Il problema si verifica anche se la cache JWS e la zona browser scaricare sono vuoti.
Non credo che il messaggio "KeyUsage" sia rilevante perché 1) viene utilizzata la stessa catena di certificati per un'altra applicazione che viene avviata correttamente; e 2) la documentazione che ho letto indica che la CA di firma del codice Thawte viene utilizzata solo per verificare il certificato UNIDATA e non per firmare il codice.
Il mio ambiente è Linux 2.6.27.41-170.2.117.fc10.x86_64, Firefox 3.6.8 (i686) e Java 1.7.0-ea.
Perché non sarà questa l'avvio di applicazioni?
AGGIORNAMENTO: Ho scoperto che l'applicazione si avvia se l'attributo "codebase" nel file JNLP fa riferimento a una directory locale ma non se fa riferimento a un URL che si trova dietro l'autenticazione dell'utente. In quest'ultimo caso, javaws (1) interpreta la pagina Web di autenticazione come un file JNLP (con risultati ovvi) se invocata dalla riga di comando. Se invocato dallo script "deployJava" da una pagina Web di autenticazione utente (in modo che il browser abbia un cookie di sessione), javaws (1) dice che l'applicazione non è firmata. Trovo che entrambe queste modalità di errore siano strane, poiché la documentazione di javaws (1) dice che comprende l'autenticazione delle pagine Web da parte dell'utente e il file jar è firmato.
Come stai firmando il tuo file jar? Ho riscontrato questo tipo di problemi quando si utilizzava l'attività signjar in cui l'attributo lazy era impostato su true. Rimuovendo l'attributo 'lazy = true' praticamente i problemi sparivano. – Pram
@Pram Uso questa voce ant (1): . L'attributo "lazy" non viene utilizzato. –