les ressources jar dans jnlp ne sont pas signées par le même certificat

je travaille avec web start depuis quelques années maintenant et j'ai de l'expérience avec la signature des bocaux et ce qui ne l'est pas. Je prends ma première tentative de déployer une application RCP avec web start et bien que j'ai en fait signé tous les jars avec le même certificat, je continue de recevoir cette erreur: "les ressources jar dans jnlp ne sont pas signées par le même certificat"

<!-- Quelqu'un d'autre est-il tombé sur ça? Si oui, des idées sur la façon de résoudre?

16
demandé sur javamonkey79 2009-01-10 11:43:01

6 réponses

quand j'ai eu des problèmes similaires après avoir vérifié les pots, il s'est avéré qu'un pot de tierce partie avait été signé par quelqu'un d'autre.

vous devez créer un fichier JNLP séparé pour les bocaux signés par l'autre certificat et lire ce jnlp à partir de votre fichier jnlp:

<resources>
  ...
  <extension name="other" href="other.jnlp"/>
</resources>

Ici ou ici vous pouvez trouver un exemple.

12
répondu asalamon74 2012-01-19 15:43:23

il peut s'agir d'une entrée de manifeste périmée provenant d'un pot déjà signé que vous utilisez comme bibliothèque. J'ai rencontré ce problème avec jogl via webstart. Essayez ceci:

décompresser tous les fichiers jars, purger tous les répertoires META-INF, jar et les signer à nouveau.

3
répondu Stefan Tannenbaum 2009-01-10 14:25:25

j'ai trouvé que JNLP/Webstart n'aime pas les signatures multiples/signer via jarsigner.exe pour un pot donné. Si un pot tel que le BouncyCastle (qui vient présigné) est signé à nouveau avec le certificat de votre entreprise, l'inspection visuelle me porte à croire que le nouveau certificat et les Signatures sont effectuées correctement dans le pot. mais ce JNLP peut ne lire que la première (alphabétique?) signature dans le META-INF, et de ce fait se plaindre qu'il ne correspond pas à vos autres jarres (qui ont seulement un, Corporate, signature sur chaque pot).

3
répondu Matthew McCullough 2009-02-07 18:26:24

J'ai vécu exactement la même expérience que celle décrite par Matthieu avec les bocaux de BouncyCastle. Cependant, J'ai trouvé que JRE Version 1.6.0_14 et plus tard accepteront volontiers des pots avec plusieurs signatures (comme je m'y attendais). Par conséquent, je n'ai pas eu besoin d'utiliser le JNLP 'component extension mechanism' décrit ci-dessus.

PS Nous n'avons trouvé aucune référence évidente à ce correctif dans les notes de version 1.6.0_14. Cependant, j'ai vérifié que plusieurs jarres signées fonctionne dans toutes les versions suivantes (à moins 14 - 17 + 24).

2
répondu Per-Ivar Bakke 2011-06-08 08:30:34

voir l'explication pour l'une des FAQ: comment utiliser plusieurs fichiers JAR signés par différents certificats?

bonne solution.

2
répondu pavan 2014-04-15 20:15:41

dans mon projet, ce qui s'est passé est qu'il y a quelques instances dans le pool de load balancer, il y a quelques instances avec une ancienne version de code et d'autres avec une nouvelle version. Il y a donc des certificats qui ne sont pas signés par le même certificat...

0
répondu Feng Zhang 2013-03-25 19:25:08