SSL CHAT - ARCHITECHTURE TRÈS SIMPLE CLIENT/SERVEUR
cs_tds
Messages postés351Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 9 décembre 2004
-
4 mars 2004 à 12:16
Yacef -
10 août 2017 à 09:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ghassenam
Messages postés2Date d'inscriptionlundi 23 février 2009StatutMembreDernière intervention 2 novembre 2010 2 nov. 2010 à 22:05
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
cs_garri
Messages postés2Date d'inscriptionmardi 9 décembre 2008StatutMembreDernière intervention12 janvier 2010 12 janv. 2010 à 20:07
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
je vous remercie en avance
djroulo
Messages postés25Date d'inscriptiondimanche 22 février 2004StatutMembreDernière intervention21 octobre 2008 9 janv. 2007 à 18:17
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.
omcougar
Messages postés152Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention 8 octobre 20081 9 janv. 2007 à 14:55
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
geearf
Messages postés4Date d'inscriptiondimanche 15 février 2004StatutMembreDernière intervention 8 janvier 2006 8 janv. 2006 à 13:54
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 .
ninjagtr
Messages postés5Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention11 décembre 2006 8 janv. 2006 à 11:36
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.
geearf
Messages postés4Date d'inscriptiondimanche 15 février 2004StatutMembreDernière intervention 8 janvier 2006 8 janv. 2006 à 02:06
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 :)
ninjagtr
Messages postés5Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention11 décembre 2006 7 janv. 2006 à 22:58
Mais je suis pas sur que ce soit la bonne solution.
geearf
Messages postés4Date d'inscriptiondimanche 15 février 2004StatutMembreDernière intervention 8 janvier 2006 7 janv. 2006 à 22:45
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.
Une piste svp ?
ninjagtr
Messages postés5Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention11 décembre 2006 7 janv. 2006 à 22:21
Salut,
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 :
geearf
Messages postés4Date d'inscriptiondimanche 15 février 2004StatutMembreDernière intervention 8 janvier 2006 6 janv. 2006 à 16:10
Salut,
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,
djroulo
Messages postés25Date d'inscriptiondimanche 22 février 2004StatutMembreDernière intervention21 octobre 2008 24 sept. 2005 à 21:24
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...
Bonne chance.
neo2005xp
Messages postés1Date d'inscriptionmardi 12 avril 2005StatutMembreDernière intervention18 septembre 2005 18 sept. 2005 à 17:09
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.
Merci d'avance ;)
djroulo
Messages postés25Date d'inscriptiondimanche 22 février 2004StatutMembreDernière intervention21 octobre 2008 30 avril 2004 à 03:26
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)...
cs_leuro
Messages postés1Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention13 avril 2004 13 avril 2004 à 17:15
Il y aurai t il une solution pour faire fonctionner le client en applet ?
merci
Le G@SP
Messages postés1Date d'inscriptionvendredi 3 octobre 2003StatutMembreDernière intervention 7 avril 2004 7 avril 2004 à 15:14
Hello,
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):
djroulo
Messages postés25Date d'inscriptiondimanche 22 février 2004StatutMembreDernière intervention21 octobre 2008 4 mars 2004 à 16:31
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.
Vive Linux :-p
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 4 mars 2004 à 13:28
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 !
cs_tds
Messages postés351Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 9 décembre 2004 4 mars 2004 à 12:16
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 :)
[:)]
10 août 2017 à 09:46
25 déc. 2013 à 00:04
2 nov. 2010 à 22:05
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
12 janv. 2010 à 20:07
il me donne toujours une erreur
j'aimerai bien utilise eclipse
je vous remercie en avance
9 janv. 2007 à 18:17
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.
9 janv. 2007 à 14:55
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
8 janv. 2006 à 13:54
8 janv. 2006 à 11:36
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.
8 janv. 2006 à 02:06
7 janv. 2006 à 22:58
Mais je suis pas sur que ce soit la bonne solution.
7 janv. 2006 à 22:45
Une piste svp ?
7 janv. 2006 à 22:21
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
6 janv. 2006 à 16:10
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,
24 sept. 2005 à 21:24
!!!! 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.
18 sept. 2005 à 17:09
Merci d'avance ;)
30 avril 2004 à 03:26
Voici l'adresse : http://www.appgate.com/products/5_MindTerm/4_Download/
Bon surf (prenez les sources de MindTerm pour y voir plus clair)...
13 avril 2004 à 17:15
merci
7 avril 2004 à 15:14
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
5 mars 2004 à 08:37
=> http://wwws.sun.com/software/javadesktopsystem/
B@ron [:)]
4 mars 2004 à 16:31
"-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
4 mars 2004 à 13:28
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 !
4 mars 2004 à 12:16
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 :)
[:)]