Pourquoi est-ce important de signer (avec un certificat) une application Java
? Prenons un exemple concret : laisseriez vous entrer une personne non
certifiée dans votre appartement pour qu’elle fouille vos placards ? Non je
l’espère, par contre un policier avec un mandat… là oui (je ne vous le
souhaite pas :)).
Pour les applications c’est la même chose : votre applet ne
pourra pas accéder à des fichiers sensibles si il n’est pas signé.
Pour ce tutoriel nous allons signer un lecteur Ogg : Cortado. Cet applet est destiné à être placé sur un serveur web pour diffuser une web-tv par exemple. Dans l’exemple il doit se connecter à un serveur Icecast et il doit donc être signé pour avoir le droit de lire le flux.
Vous devez tout d’abord installer le JDK, disponible ici.
Je vais vous présenter les manipulations sous Windows, mais elles sont identiques sous Linux ou Mac.
Placez vous dans le dossier du JDK, dans le répertoire des binaires :
cd "C:\Program Files\Java\jdk1.6.0_12\bin"
Nous allons
tout d’abord créer un certificat. Pour cela utilisez keytool
, notre
certificat sera valide 1 an (365 jours) et aura pour alias (un nom pour le
réutiliser lors d’une signature) “myCertif”. On précise aussi le mot de passe
du keystore
(le coffre qui contient les clés) :
C:\Program Files\Java\jdk1.6.0_12\bin > keytool.exe -genkey -alias myCertif -validity 365 -storepass adadad
Vous devez alors donner différentes
informations comme le nom de l’entreprise, etc…Attention car ces valeurs
pourront être visibles des utilisateurs ! Vous devrez confirmez les
informations puis donner un mot de passe à la clé. Votre certificat est crée,
signons donc notre application avec jarsigner
:
C:\Program Files\Java\jdk1.6.0_12\bin > jarsigner.exe -storepass adadad C:\cortado-ovt-stripped-0.2.2.jar myCertif
Jarsigner n’est pas très bavard, mais si rien n’est précisé alors tout s’est bien passé !
Bonnes signatures ;-)