header


Signer une applet Java

parArkenle 30.Jul.2009

Par défaut une applet Java s'execute dans un environnement protégé afin d'éviter tout acte de malveillance via une applet...sauf que ça devient vite problématique, notamment si vous souhaiter dans votre applet accéder au file system local (lecture, écriture de fichiers par exemple) et vous vous prendrez forcément une erreur java.security.AccessControlException: access denied

La solution est simple : il faut signer votre applet Java et voici comment faire :


Etape 1 : générer une clé

Tout d'abord il vous faut télécharger le JDK, pour ça rendez-vous sur le site de Sun.
Une fois votre JDK téléchargé et installé, ouvrez une invite de commande (démarrer => exécuter => cmd) et déplacez vous jusqu'au répertoire bin du JDK (C:\Program Files\Java\jdk1.6.0_14\bin chez moi).

La première étape est donc de générer une clé dans notre keystore local. Cela se fait via la commande suivante :
keytool -genkeypair -keyalg rsa -alias <le nom de votre clé>

par exemple :
keytool -genkeypair -keyalg rsa -alias tstkey


Etape 2 : générer un jar pour votre applet

Une applet ne peut se signer que sous forme de fichier .jar, il vous faut donc générer le jar de votre applet.
Sous Eclipse Galileo, cela se fait très simplement en cliquant droit sur son projet puis "Export..." => Java => Jar file


Etape 3 : signer votre/vos jar(s)

Maintenant que nous avons un fichier .jar, nous allons pouvoir le signer. En effet, on signe un fichier .jar, pas les classes directement.

Pour cela, on va fair appel à jarsigner :
jarsigner <chemin vers mon jar> <nom de ma clé>

par exemple :
jarsigner C:\testApplet.jar tstkey

ATTENTION : si votre applet fait appel à d'autres jars pour fonctionner, il faut que tous les jars qu'utilise votre applet soient également signés.


Etape 4 : vérifier la signature

Pour vérifier que le jar est correctement signé, nous allons refaire appel à jarsigner :
jarsigner -verify -verbose -certs <chemin vers mon jar>

par exemple :
jarsigner -verify -verbose -certs C:\testApplet.jar


Etape 5 : déployez l'applet sur votre serveur et vérifier son fonctionnement

Maintenant que votre applet est signée, il ne vous reste plus qu'à la déployer sur votre serveur.

Si elle a été signée correctement, vous devriez voir apparaître un popup vous disant que le certificat de l'applet ne peut pas être vérifié et vous demandant si vous voulez tout de même autoriser cette applet à s'exécuter. Répondez oui, et tout devrait fonctionner.

Sachez qu'il est possible d'obtenir un certificat officiel, attestant que votre applet est inoffensive, auprès d'organisme comme Verisign...mais c'est bien entendu payant !



commentaires
Aucun commentaire


Code de confirmation
Confirmer

Les cigares, vous les aimez comment ?
25%
68%
8%