41 votes

Comment signer un applet Java pour l'utiliser dans un navigateur?

Je suis en train de déployer une applet Java sur mon site. J'ai aussi besoin de le signer, car j'ai besoin d'accéder au presse-papier. J'ai suivi toutes la signature des tutoriels que j'ai pu trouver, mais n'ont pas eu de succès. Voici ce que j'ai fait jusqu'à présent:

  • A écrit une applet dans NetBeans. Il fonctionne très bien dans l'applet viewer.
  • Faites un .jar fichier.
  • Créé un certificat en faisant ceci:
keytool -genkey -keyalg rsa -alias myKeyName
keytool -export -alias myKeyName -file myCertName.crt
  • Signé avec jarsigner comme ceci:
jarsigner "C:\my path\myJar.jar" myKeyName
  • Fait un fichier html contenant ceci:
<html>
  <body>
<applet code="my/path/name/myApplet.class" archive="../dist/myJar.jar"/>
  </body>
</html>

Quand je ouvrir ce fichier html, je n'obtiens jamais la sécurité de la boîte de dialogue de confirmation (et donc faire la java.de sécurité.AccessControlException: erreur accès refusé). Ce qui se passe sur tous les navigateurs.

Ai-je raté une étape?

29voto

nuno_cruz Points 996

3 étapes faciles

  1. keytool -genkey -keystore myKeyStore -alias me

  2. keytool -selfcert -keystore myKeyStore -alias me

  3. jarsigner -keystore myKeyStore jarfile.jar moi

7voto

EdSG Points 79

Peut-être que c'est parce que vous êtes à l'ouverture de certains .les fichiers de classe à l'extérieur le fichier jar?

De cette façon, il peut ne pas afficher le message d'avertissement. J'ai essayé de le faire de cette façon, mais encore, elle m'a montré l'avertissement de certificat et pour un cas simple, il en fait m'a empêché d'accéder à une classe à partir du POT avec la séparation de la classe.

Peut-être que votre installation spécifique ou de l'organisation des fichiers les causes de ce comportement. Si vous pouvez vous la mise en page que dans plus de détails que nous pourrions aider à mieux (ou plutôt, essayer de mettre toutes les personnes .les fichiers de classe dans un autre encore signé Bocal et ajouter à l'archive"..., anotherJar.jar").

1voto

monceaux Points 396

Vous avez mentionné:

Lorsque j'ouvre ce fichier html, la boîte de dialogue de confirmation de sécurité ne s'affiche jamais ...

Ouvrez-vous le fichier à partir de votre système de fichiers local ou via une URL vers un serveur Web hébergeant le fichier HTML et le ou les jar d'applets? Cela pourrait être la raison pour laquelle vous ne recevez aucun avertissement.

1voto

Milhous Points 6362

Voici un moyen de signer vos fichiers jar, puis de vérifier que tous les fichiers de classe sont signés avec votre magasin de clés.

 #!/bin/bash
KEYSTORE=/home/user/NetBeansProjects/sign/keystore
FILES=`find /home/user/NetBeansProjects/Project/dist/ -name "*.jar"`
for f in $FILES; 
   do echo password |  /usr/bin/jarsigner -keystore $KEYSTORE -verbose $f myself;
   echo "Signed $f"; 
  /usr/bin/jarsigner -verify -verbose -certs $f | grep X.509 | sort -u;
done
 

-1voto

Je vous suggère de ne pas signer le code. Si vous jouez avec d'autres personnes de la sécurité, alors vous devriez vraiment savoir ce que vous faites.

JTextComponent devrait permettre de copier et coller du texte, si c'est suffisant.

jarsigner -verify permettra de vérifier que votre pot est signé. Vous pouvez également avoir un regard rapide sur le fichier manifest et les fichiers dans META-INF/.

Le pop-up boîte de dialogue de certificats de confiance peut être désactivé. Dans le Soleil de la mise en œuvre: ouvrez le Panneau de configuration Java; allez à l'onglet Avancé; développez le nœud Sécurité; les deux cases à cocher doit être "Permettent à l'utilisateur d'accorder des autorisations d'signé contexte" et de "Permettre à l'utilisateur d'accorder des autorisations à un contenu d'une autorité non approuvée".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X