Comment dois-je signer une 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.
- Fait une .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?
Vous devez vous connecter pour publier un commentaire.
C'est peut-être 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").
3 étapes faciles
keytool -genkey -keystore myKeyStore -alias moi
keytool -selfcert -keystore myKeyStore -alias moi
jarsigner -keystore myKeyStore jarfile.jar moi
-keystore myKeyStore
est même en option, n'est-ce pas? J'ai obtenu mon applet signée, de cette façon, mais mon Clipboardproblem reste. Toutefois, la meilleure appletsigning (jarsigning) - tutoriel que j'ai trouvé sur le web. 🙂Tout d'abord, je vous suggère d'obtenir un code valide, certificat de signature. Vous pouvez obtenir gratuitement un cert de Thawte. Bien que généralement ces certificats sont utilisés pour S/MIME, ils sont également valables pour la signature de code.
La deuxième option est d'importer votre auto-signé cert dans le fichier cacert de la JRE que votre navigateur est en invoquant.
La prochaine chose à faire est de vérifier pour vous assurer que votre navigateur est en cours d'exécution de votre dernier pot. Une façon de le faire est de toujours incrémenter le numéro de version. L'autre option est pour vous de vider votre cache de l'applet Java. J'ai l'habitude de vider mon cache du navigateur, mais cela ne devrait pas être nécessaire.
Vous avez mentionné:
Êtes-vous d'ouvrir le fichier à partir de votre système de fichiers local ou via une URL vers un serveur web hébergeant le fichier HTML et l'applet pot(s)? Qui pourrait être pourquoi vous n'obtenez pas de message d'avertissement.
Ici est une façon de signer vos pots et vérifiez que tous les fichiers de classe sont signés avec votre fichier de clés.
Edit: Cette réponse est historique. JDK9 sera apparemment dénigrent les applets. Au moment de la rédaction (du 1er janvier 2017), vous devez vous inscrire applets, mais ne pas leur donner des privilèges supplémentaires, puis la transition vers une technologie actuelle.
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 deMETA-INF/
.La pop 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".