salam
brabi ana executit code 3la netbeans(6.9) é 3malit Run é 9ali :BUILD SUCCESSFUL
hors console ma5ajitlich brabi kifeh na3mil mich tjini haki console
é merci d'avance
je me demande s'il y une personne qui peu m'expliquer en détaille la manière exécution de ces deux programmes
il me donne toujours une erreur
j'aimerai bien utilise eclipse
Bonjour,
tout d'abord, les paramètres indiqués dans le forum et dans les fichiers BAT doivent êtres utilisés pour que l'application puisse fonctionner.
Faire d'abord générer le certificat du SERVEUR.
Faire ensuite générer le certificat du CLIENT.
Ne pas oublier de paramètres, et bien vérifier que le port définit dans l'application est bien ouvert (par défaut je crois que c'est le port 3001).
Vous pouvez aussi importer vos certificats de sécurité dans le KEYSTORE Java (répertoire contenant les certificats générés).
Ensuite, vous pourrez utiliser les lanceurs pour lancer :
- le serveur en attendant qu'il s'inialise sur le port 3001
- le client en tapant en pramètre la machine sur laquelle on veut appeler le verveur, ici "localhost"...
Votre erreur concerne l'opération de Handshake, qui est la négociation, de fait l'échange des clés publiques. Cela concerne donc une erreur sur les certificats ou l'établissement de la connexion.
Bonne chance, j'espère que cela pourra vous aider.
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
je pense que le serveur a un certificat pourri ou puis-je trouver de la doc sur les différents éléments que je dois remplire lorsque le keytoll se lance ? merci
Moi je suis sur un projet de partage de fichiers sécurisé (pas un P2P), et mon but ici est de sécuriser les transferts, mais je ne veux pas obliger les personnes à se connaître d'avance .
Moi je pense au ssh, quand tu te connecte la première fois sur un serveur ssh, il y a une génération de clé (en tout cas dans le mode de connexion au serveur ssh par mot de passe, car il y a mode qui permet de pas saisir de mot de passe, mais juste avec une authentification d'un fichier de certif, ou quelque chose comme ça).
Je me base par rapport à ça, mais c'est peut être pas la même chose, en tout cas mon but c'est de pouvoir établir une connexion réseau (pour transmettre du texte ou autre chose) de manière sure (crypté...) et par la même occasion en apprendre un peu plus sur le cryptage.
Merci bien je testerai cela, si tu penses que ce n'est pas la bonne solution, à quoi penserais tu ? c'est mon premier test de ssl donc j'ai peut etre de mauvaises idées la :)
Petit ajout sur mon commentaire, il faut en fait que j'échange les cles client / server, mais j'aimerai ne pas avoir à faire cela, pour que 2 'nouveaux' clients / servers puissent s'échanger des infos.
Je viens juste de commencer à travailler un peu sur le cryptage en java, je n'ai pas encore tout compris sur le fonctionnement de clé privée, public ... mais ça vient :) .
Au niveau des fichiers de certifications, j'en fais un avec Keytool, et après je le copie dans le répertoire serveur et client.
Je n'ai pas encore compris le but de l'export/import du fichier de certification.
Par contre quand je lance le serveur je fait juste :
Ok pour pouvoir utiliser les commandes Java, il faut que tu définisse ton environement JAVA...
!!!! UTILISATEURS WINDOWS !!!!
tape par exemple à l'inviste DOS :
PATH = %PATH%;C:\Progra~1\J2SE\bin;
pour prendre en compte le répertoire contenant les fichiers exécutables du J2SE si ton répertoire JAVA se trouve bien dans "C:\Program Files\J2SE" mais là c'est à toi de chercher.
Lorsque tu tapes "javac serverChat.java" pour compiler l'exécutable doit marcher pareil pour keystore, repère où il se trouve et installe le J2SE SDK si besoin, car le JRE ne suffit pas.
Pour plus de renseignement essaye de chercher à "JAVA enironnement setup" je pense que tu devrais trouver ton bonheur. N'hésites pas à te faire un petit fichier BAT pour gérer ton environnement...
cette source m'interresse grandement surtout ke les socket ssl n'ont pas l'air si compliqué que ca mais sur le serveur ls.bat ne marche pas , je n'ai pas de fichier keystore je pense ke chez moi c le fichier gencert.bat ki ne marche pas. sous cmd il me dis k'il ne connai pas la commande keystore si je lance a la main la ligne de commande du .bat. kelkun pourrai m'aider j'aimerai bien comprendre la partie de generation des clef car j'avou etre un peu perdu la mé j'aimerai me servir des scket ssl ds des projet personnel en java.
Pour ce qui est des applets, on m'a souvent posé la question, et "MindTerm" fait ça très bien. MindTerm est surtout utilisé comme applet Java pour faire fonctionner un Terminal comme un serveur SSH par exemple. Très utile !!!
Voici l'adresse : http://www.appgate.com/products/5_MindTerm/4_Download/
Bon surf (prenez les sources de MindTerm pour y voir plus clair)...
bien sympa ce programme mais en effet les .bat ne servent à rien, voici comment faire fonctionner ça en tapant tout simplement "java serverChat" et "java clientChat"
o dans le repertoire du serveur on crée son certificat comme tu l'avais fait dans ton .bat (on créé un alias "nomPCserveur" dans un magasin de clés "serverkeys" avec comme mot de passe pour le magasin et la clé "serverpwd"):
o On exporte le certificat du serveur de ce magasin serverkeys dans un fichier server.cer :
keytool -export -keystore serverkeys -alias monPCserveur -file server.cer
(le mot de passe qu'il demande alors est "serverpwd")
o On crée un nouveau magasin de clés qui sera utilisé comme truststore par le client, on va appeler ce nouveau magasin jssecacerts par exemple (donnez n'importe quel mot de passe):
En fait au sujet des .BAT, je les ai mis car c'est la seule facon de faire tourner le programme. Si vous avez regardé les batchs, vous avez vu que la commande spéciale qui les fait trouner utilise l'option
"-Djavax.net.ssl.trustStore=serverkeys" qui permet de spécifier que le certificat de sécurité que l'on veut utiliser se trouve dans le meme répertoire que le programme.
Vous pouvez tout aussi bien utiliser cette ligne de commande sous Linux, c'est sans probleme, il vous suffit d'extraire la ligne commancant par "java ......... nomduprogramme", mais je suis sur que vous l'aviez deja remarqué :-)
Je vais ajouter une fonctionnalité qui permet de faire tourner le serveur meme si quelqu'un quitte la conversation.
C'est a dire que la Socket sera recrée automatiquement... et ce d'ici peu.
Le chat des espions ... cool !
Pour le chat qui dort ... lol -> M'enfin mieux vaut au moins mettre des .BAT que rien du tout ... de temps en temps je mets des .sh mais bon ... quelqu'un qui connais les .sh sera facilement le transformer en .BAT alors que le contraire ce n'est pas gagner ... c'est ça d'avoir un OS de faignant ...
@+ tous les deux !
mmmh, évite de mettre des .bat pour quand tu utilises Java.
Le but c'est quand-même que java tourne egalement sur Linux-unix.
Tu as déjà consulté le JavaOS (basé sur linux) sur le site sun?
B@ron (sinon, ton code à l'air très intérêssant :)
[:)]
brabi ana executit code 3la netbeans(6.9) é 3malit Run é 9ali :BUILD SUCCESSFUL
hors console ma5ajitlich brabi kifeh na3mil mich tjini haki console
é merci d'avance
il me donne toujours une erreur
j'aimerai bien utilise eclipse
je vous remercie en avance
tout d'abord, les paramètres indiqués dans le forum et dans les fichiers BAT doivent êtres utilisés pour que l'application puisse fonctionner.
Faire d'abord générer le certificat du SERVEUR.
Faire ensuite générer le certificat du CLIENT.
Ne pas oublier de paramètres, et bien vérifier que le port définit dans l'application est bien ouvert (par défaut je crois que c'est le port 3001).
Vous pouvez aussi importer vos certificats de sécurité dans le KEYSTORE Java (répertoire contenant les certificats générés).
Ensuite, vous pourrez utiliser les lanceurs pour lancer :
- le serveur en attendant qu'il s'inialise sur le port 3001
- le client en tapant en pramètre la machine sur laquelle on veut appeler le verveur, ici "localhost"...
Votre erreur concerne l'opération de Handshake, qui est la négociation, de fait l'échange des clés publiques. Cela concerne donc une erreur sur les certificats ou l'établissement de la connexion.
Bonne chance, j'espère que cela pourra vous aider.
je pense que le serveur a un certificat pourri ou puis-je trouver de la doc sur les différents éléments que je dois remplire lorsque le keytoll se lance ? merci
Je me base par rapport à ça, mais c'est peut être pas la même chose, en tout cas mon but c'est de pouvoir établir une connexion réseau (pour transmettre du texte ou autre chose) de manière sure (crypté...) et par la même occasion en apprendre un peu plus sur le cryptage.
Mais je suis pas sur que ce soit la bonne solution.
Une piste svp ?
Je viens juste de commencer à travailler un peu sur le cryptage en java, je n'ai pas encore tout compris sur le fonctionnement de clé privée, public ... mais ça vient :) .
Au niveau des fichiers de certifications, j'en fais un avec Keytool, et après je le copie dans le répertoire serveur et client.
Je n'ai pas encore compris le but de l'export/import du fichier de certification.
Par contre quand je lance le serveur je fait juste :
java serverChat
et non pas :
java -Djavax.net.ssl.trustStore=serverkeys serverChat
car d'après ce que je vois dans le code, l'application va chercher elle même le fichier de certification (
String keystore = "serverkeys";
ks.load(new FileInputStream(keystore), keystorepass);
).
Et pour le client je fais pareil par contre je 'set' le truststore directement dans le code :
System.setProperty("javax.net.ssl.trustStore","serverkeys");
et je lance donc le client avec : java clientChat
je bloque avec le certificat je pense, car j'ai cette erreure une fois avoir tappé un message puis enter :
Couldn't get I/O for the connection to: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknownEEE.
Pourtant le certificat devrait être bon je pense.
Merci,
!!!! UTILISATEURS WINDOWS !!!!
tape par exemple à l'inviste DOS :
PATH = %PATH%;C:\Progra~1\J2SE\bin;
pour prendre en compte le répertoire contenant les fichiers exécutables du J2SE si ton répertoire JAVA se trouve bien dans "C:\Program Files\J2SE" mais là c'est à toi de chercher.
Lorsque tu tapes "javac serverChat.java" pour compiler l'exécutable doit marcher pareil pour keystore, repère où il se trouve et installe le J2SE SDK si besoin, car le JRE ne suffit pas.
Pour plus de renseignement essaye de chercher à "JAVA enironnement setup" je pense que tu devrais trouver ton bonheur. N'hésites pas à te faire un petit fichier BAT pour gérer ton environnement...
Bonne chance.
Merci d'avance ;)
Voici l'adresse : http://www.appgate.com/products/5_MindTerm/4_Download/
Bon surf (prenez les sources de MindTerm pour y voir plus clair)...
merci
bien sympa ce programme mais en effet les .bat ne servent à rien, voici comment faire fonctionner ça en tapant tout simplement "java serverChat" et "java clientChat"
o dans le repertoire du serveur on crée son certificat comme tu l'avais fait dans ton .bat (on créé un alias "nomPCserveur" dans un magasin de clés "serverkeys" avec comme mot de passe pour le magasin et la clé "serverpwd"):
keytool -genkey -keystore serverkeys -keyalg rsa -alias monPCserveur -storepass serverpwd -keypass serverpwd
o On exporte le certificat du serveur de ce magasin serverkeys dans un fichier server.cer :
keytool -export -keystore serverkeys -alias monPCserveur -file server.cer
(le mot de passe qu'il demande alors est "serverpwd")
o On crée un nouveau magasin de clés qui sera utilisé comme truststore par le client, on va appeler ce nouveau magasin jssecacerts par exemple (donnez n'importe quel mot de passe):
keytool -import -keystore jssecacerts -alias monPCserveur -file server.cer
o Y a plus qu'à mettre ce jssecacerts dans le repertoire lib/security du java home du PC où est le client et voila
à la limite y a qu'à faire un .bat ou un .sh qui fait tout ça, l'interêt c'est qu'une fois que c'est fait... c'est fait :)
un bon complément à ce tutorial où j'ai eu ces infos : http://www.onjava.com/pub/a/onjava/2001/05/03/java_security.html?page=1
=> http://wwws.sun.com/software/javadesktopsystem/
B@ron [:)]
"-Djavax.net.ssl.trustStore=serverkeys" qui permet de spécifier que le certificat de sécurité que l'on veut utiliser se trouve dans le meme répertoire que le programme.
Vous pouvez tout aussi bien utiliser cette ligne de commande sous Linux, c'est sans probleme, il vous suffit d'extraire la ligne commancant par "java ......... nomduprogramme", mais je suis sur que vous l'aviez deja remarqué :-)
Je vais ajouter une fonctionnalité qui permet de faire tourner le serveur meme si quelqu'un quitte la conversation.
C'est a dire que la Socket sera recrée automatiquement... et ce d'ici peu.
Vive Linux :-p
Pour le chat qui dort ... lol -> M'enfin mieux vaut au moins mettre des .BAT que rien du tout ... de temps en temps je mets des .sh mais bon ... quelqu'un qui connais les .sh sera facilement le transformer en .BAT alors que le contraire ce n'est pas gagner ... c'est ça d'avoir un OS de faignant ...
@+ tous les deux !
Le but c'est quand-même que java tourne egalement sur Linux-unix.
Tu as déjà consulté le JavaOS (basé sur linux) sur le site sun?
B@ron (sinon, ton code à l'air très intérêssant :)
[:)]