-
JWS et certificat
Bonjour,
Nous utilisons le JDK 1.4.2 pour déployer une application sur le poste client au travers de Java WebStart.
Nous avons signé nos archives Jar avec un certificat produit "manuellement" et qui n'a donc rien d'officiel.
Nous avons besoin dans cette application d'accèder à tout un tas de ressources comme le reseau, le disque local, et nous souhaitons disposer de fenetres Swnig ne contenant pas le message "Warning : applet Window" (ou qqchose du genre).
Pour ce faire, nous avons utilisé une méthode un peu "bourrine" : nous dégageons le SecurityManager de la JVM cliente via un "System.setSecurityManager(null);
Tout ceci fonctionne très bien... Mais il reste toujours un petit soucis que nous aimerions régler : lorsque l'application se lance, une fenêtre nous indique que notre application peut potentiellement attaquer le poste client, et nous suggère de refuser son exécution...
Comment s'y prendre pour ne pas avoir ce message ? Le fait de passer par un "vrai" certificat pourrait-il régler le problème (je n'y connais pas grand chose dans ce domaine).
D'avance merci pour votre aide,
-
JWS et certificat
Bonjour,
Si le message provient de WebStart, et c'est une fenetre "Security Warning",
effectivement, il vous faut un certificat delivre par un CA (Certificate Authority), exemple Thawte, ou Verisign.
Robert
-
Merci pour cette réponse.
Si le certificat est officiel, ce message va-t-il disparaitre. J'ai trouvé un article sur JWS :
http://today.java.net/pub/a/today/2005/09/01/webstart.html
A la lecture de ce qui est indiqué, j'ai l'impression que j'aurai toujours ce message !!!
Merci,
-
En gros, WebStart fonctionne comme cela:
Au premier lancement de l'appli, WebStart analyse tous les fichiers JAR.
Dans tous les cas de figure, le "Security Warning" message de dialogue s'affiche.
Il contient 2 indications
1) message signe:
a) avec un "self-signed certificate"
==> une icone "Warning", plus un message de mise en garde
b) avec un "trusted CA certificate"
==> une icone "Information", plus un message comme quoi l'utilisateur peut utiliser sans crainte le "package"
2) validite du certificat:
a) certificat a expire ==> une icone "Warning", plus un message de mise en garde
b) certificat toujours valide ==> une icone "Information"
pour 1-b), il faut que le "trusted CA certificate" soit dans le "CA certs KeyStore" de la JRE de l'utilisateur.
Exemple de "trusted CA certificate" par defaut dans le "CA certs KeyStore" de JRE 1.5.0:
. verisignclass1ca
. entrustsslca
. thawteserverca
. gtecybertrustca
Astuce: le certificat "thawte personal freemail" est inclus par defaut dans le "CA certs KeyStore de JRE.
Si tu veux tester ton appli pour voir son comportement avec des JAR signes par une authorite de certification, tu peux recuperer un certificat "thawte personal freemail", gratuit et valide un an, et signe tes JAR avec.
Je l'ai fait dans le passe, cela marche bien.
-Robert
-
Merci beaucoup pour ces informations précieuses.
Saurais tu si il est possible de récupérer un trusted certificat dans le JRE ou JDK 1.4, je n'ai pas le 1.5 sur ma machine et je ne veux pas la pourir,
Merci,
-
Je ne suis pas sur de comprendre.
Si la question est de voir le contenu du keystore de la JRE 1.4, alors:
depuis DOS ou SHELL, avec l'outil keytool du JDK, tu utilise l'option -list.
ex:
keytool
-list
-keystore cacerts
-storepass changeit
"cacerts" est le keystore, situe dans JDK-HOME\jre\<version>\lib\security
"changeit" est le mot de passe par defaut de "cacerts"
Sinon, pour visualiser "cacerts" autrement que par une ligne de commande, tu peux utiliser "KeyTool IUI", une version de keytool avec interface graphique, jette un coup d'oeil sur mon site.
Dans ce cas, fait d'abord une copie de "cacerts", nomme la "cacerts.jks",
Une fois l'utilitaire lance, dans la barre des menus, selectionne
View | Preview file | KeyStore | JKS KeyStore ...
et ouvre le fichier "cacerts.jks"
==> la liste des certificats de la JRE est affichees
Si tu as dans la liste, un certificat du genre "thawtepersonalfreemailca", alors, tu peux utiliser le certificat mentionne dans mon "post" precedant, pour signed tes JAR, et obtenir des "trusted CA certificates" lues par WebStart.
-
Merci encore beaucoup pour ces informations.
Je pense être proche du but maintenant.
Voici ce que j'ai tenté de faire, étant donné que je n'ai pas trouvé le certificat dont vous m'avez parlé.
J'ai ajouter le certificat "auto-validant" que nous avions créé pour signer nos fichiers .jar via l'option import de keytool.
En faisant cela, j'espérais pouvoir valider sur mon poste le fait qu'avec un certificat connu dans ma base locale, le message allait être moins "violent".
J'ai tapé la commande
keytool -import -v -file monCert -keystore cacerts -storepass changeit
La réponse a été "Certificat ajouté au keystore". Lorsque je relance mon application (après avoir vidé le cache JWS), le message est toujours aussi alarmiste...
Je vois trois solutions :
- JWS n'utilise pas le keystore cacerts présent dans le JRE... J'ai cherché dans le répertoire de JWS mais je n'ai rien trouvé d'autre....
- mon approche n'est pas bonne, même si mon certificat est connu dans le keystore, cela ne peut pas fonctionner du fait que mon certificat n'est pas "certifié" par un organsime officiel...,
- ce message sera toujours le même quoi que je fasse,
En tous les cas, merci encore beaucoup pour votre aide, si vous avez deux minutes pour me donner un dernier coup de pouce, ce serait très gentiol, je sens que je suis très prêt du résultat...
-
Bon en bidouillant dans l'IHM de JWS, j'ai vu qu'il était possible d'importer graphiquement des certificats.
Je l'ai fait avec le mien et... miracle, le message est bien moins violent maintenant.
Merci encore beaucoup pour ton aide.
Je me pose toutefois toujours la question de savoir ou JWS stocke ses certificats. Cela m'arrangerait de le savoir car j'aimerai pouvoir faire via une commande keytool ce que j'ai fait graphiquement dans JWS. Si tu avais une idée....
Très cordialement,
-
Recherche un fichier nomme "trusted.certs"
EX: avec W2K,
C:\Documents And Settings\<nom-utilisateur>\Application Data\Sun\Java\Deployment\security\trusted.certs