Il peut être nécessaire de signer un jar en vue d'un déploiement, par exemple. Voici le fruit de mes recherches et la démarche que j'ai utilisée. Un grand merci à tous les contributeurs.

Contexte : Win 7 32 – Éclipse JUNO, JDK 1.7

Deux étapes sont nécessaires :
  • création d'une clé
  • signer le jar (pour cela, il faut avoir créé un jar runnable).


Les lignes de commandes situées ci-dessous sont lancées dans la console Windows (démarrer/accessoires/invite de commande).
Lorsque vous copiez ces lignes de commande, allez alors dans la console, clic-droit, coller et [enter].


Création d'une clé et auto validation :
L'outil fournit avec le JDK est keytool. Pour moi il se trouve sous :
C:\Program Files\Java\jdk1.7.0_21\jre\bin\

Le fichier contenant les signatures sera nommé ici : monStore
Par défaut il est placé sous :
C:\utilisateurs\monNom\
La signature sera nommée ici : signature
Il vous sera demandé un password.

a) créer une clé
"C:\Program Files\Java\jdk1.7.0_21\jre\bin\keytool" -genkey -alias signature -keyalg RSA -keystore monStore
Renseigner toutes (ou non) les demandes... A la fin, saisir oui

b) auto-valider la clé (par défaut valide 6 mois)
"C:\Program Files\Java\jdk1.7.0_21\jre\bin\keytool" -selfcert -alias signature -keystore monStore


Signer le jar
L'outil utilisé est jarsigner. Pour moi il se trouve sous :
C:\Program Files\Java\jdk1.7.0_21\bin\

Il faut placer le jar à signer sous C:\utilisateurs\monNom\

le jar à signer est nommé ici appli_unsigned.jar ; on récupère le jar signé : appli.jar

"C:\Program Files\Java\jdk1.7.0_21\bin\jarsigner" -verbose -keystore monStore -signedjar appli.jar appli_unsigned.jar signature

C'est fini.


Quelques commandes utiles :
liste des commandes de keytool
"C:\Program Files\Java\jdk1.7.0_21\jre\bin\keytool" keytool -list -keystore monStore

affichage des clé de monStore
"C:\Program Files\Java\jdk1.7.0_21\jre\bin\keytool" -list -keystore monStore
"C:\Program Files\Java\jdk1.7.0_21\jre\bin\keytool" -list -v -keystore monStore


export du certificat
"C:\Program Files\Java\jdk1.7.0_21\jre\bin\keytool" -export -alias signature -file certificat.cer -keystore monStore

Quelques liens utiles :
http://blog.hbis.fr/2009/07/04/java_keytoo/
http://www.networking4all.com/fr/sup...andes+keytool/
http://publib.boulder.ibm.com/wasce/...omcat/Ssl.html
http://www.mobilefish.com/tutorials/...e_keytool.html


Hope this helps

Christian