Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1101 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] Communication SSL entre webservice et client

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] Communication SSL entre webservice et client

n°1562780
NoiBe49
Posté le 21-05-2007 à 09:46:00  profilanswer
 

Bonjour,

 

Je vous expose mon problème :
Je dois me connecter à un webservice protégé via SSL + Authentification BASIC.

 

Ce client m'a transmit 3 fichiers qui apparemment vont me servir à me connecter via SSL (les certificats apparemment) :
monfichier-cert.pem
monfichier-issuer.pem
monfichier-key.pem

 

Voici le code que j'utilise dans mon programme java pour me connecter à ce webservice :

 
Code :
  1. //Valider votre certificat serveur comme sûr
  2.    System.setProperty("javax.net.ssl.trustStore", "chemin du fichier .keystore" );
  3. System.setProperty("javax.net.ssl.trustStorePassword", "mot_de_passe_du_keystore" );
  4.    //Recherche du web service
  5.    MONWSServiceLocator theWS = new ServiceETLServiceLocator();
  6.    theWS.setSIETLEndpointAddress("http://AdresseWeb.com/deMonWS/monWS" );
  7.    MONWSSoapBindingStub monSrv = (MONWSSoapBindingStub) theWS.getMONWS();
  8.    //Saisie du login et du pass pour authentification BASIC
  9.    monSrv.setUsername("ici le login" );
  10.    monSrv.setPassword("ici le pass" );
  11.    //Appel du web service
  12.    resultat = monSrv.moFonction(mesParam);
 


Le problème que je rencontre est le suivant :
Comment générer ce fichier .keystore nécessaire avec les 3 fichiers que m'a envoyé le client ?

 

Dans le cas où je ferais fausse route, pourriez-vous m'expliquer comment me connecter en SSL à ce webservice en utilisant ces 3 fichiers ?

 

Vous m'enlèveriez une sacrée épine du pied.

 

Merci à tous


Message édité par NoiBe49 le 21-05-2007 à 09:51:09
mood
Publicité
Posté le 21-05-2007 à 09:46:00  profilanswer
 

n°1570984
NoiBe49
Posté le 06-06-2007 à 14:50:03  profilanswer
 

Bon, je relance mon sujet car je suis toujours dans l'impasse. Cependant, j'ai tout de même avancé.

 

Avec mes 3 fichiers PEM, j'ai créé un keystore dans lequel j'ai mit le fichier :
- cert.pem
- issuer.pem

 

J'ai généré le keystore avec keytool grâce aux lignes suivante :

 
Code :
  1. keytool -importcert -trustcacerts -alias cer_client -file cert.pem -keystore monkeystore.jks
  2. keytool -importcert -trustcacerts -alias cer_client2 -file issuer.pem -keystore monkeystore.jks


J'ai copier ce fichier monkeystore.jks sous C:\

 

Maitenant j'essai de faire appel à mon webservice via le code suivant :

 
Code :
  1. //Valider votre certificat serveur comme sûr
  2. System.setProperty("javax.net.ssl.trustStore", "C :/ monkeystore.jks" );
  3. System.setProperty("javax.net.ssl.trustStorePassword", "motdepasse" );
  4. //Recherche du web service
  5. MONWSServiceLocator theWS = new ServiceETLServiceLocator();
  6. theWS.setSIETLEndpointAddress("http://AdresseWeb.com/deMonWS/monWS" );
  7. MONWSSoapBindingStub monSrv = (MONWSSoapBindingStub) theWS.getMONWS();
  8. //Appel du web service
  9. resultat = monSrv.moFonction(mesParam);


Cependant, au moment de se connecter au webservice, j'ai droit à l'erreur suivante :

 
Citation :

  

         AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
  faultSubcode:

 

faultString: javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable tofind valid certification path to requested target
  faultActor:
  faultNode:
  faultDetail:
 


Là je sèche complètement et tourne en rond depuis plusieurs jours. Où ai-je bien pu faire une erreur ?

 

- Problème lors de la création du keystore ?
- Mauvaise utilisation des fichier PEM ?
- Mauvaise déclaration dans mon code ?
- Ou bien un truc que j'ai pas pigé tout simplement ?

 

Merci à ceux qui me fileront un coup de main


Message édité par NoiBe49 le 06-06-2007 à 14:51:28
n°1571664
NoiBe49
Posté le 07-06-2007 à 16:44:39  profilanswer
 

Bon, je piétine un peu :

 

Avec openSSL, j'ai créé un fichier pkcs12 :

 
Code :
  1. openssl pkcs12 -export -inkey key.pem -in cert.pem -out certif.p12
 


J'ai ajouté ce certificat à la banque de certificat de firefox et j'ai tenté de contacter l'url du webservice via firefox. Je sélectionne le certificat fraichement ajouté et ... ça marche. Je me retrouve sur une page me disant que je n'accède pas correctement au webservice mais je me connecte quand même au serveur donc le fichier pkcs12 est correct.

 

Je tente maintenant d'utiliser ce même fichier dans mon programme java en ramplcant 2 lignes :

Code :
  1. System.setProperty("javax.net.ssl.trustStore", "C  :/ monkeystore.p12" );
  2. System.setProperty("javax.net.ssl.trustStoreType", "PKCS12" );
  3. System.setProperty("javax.net.ssl.trustStorePassword", "motdepasse" );


Et là .... même foutue erreur :

 
Citation :

 


AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
  faultSubcode:  faultString: javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable tofind valid certification path to requested target
  faultActor:
  faultNode:
  faultDetail:
 


Je sais vraiment plus quoi faire ...


Message édité par NoiBe49 le 07-06-2007 à 16:45:16
n°1605992
nawara3003
Posté le 29-08-2007 à 19:40:58  profilanswer
 

Bonjour,
 
Depuis une semaine, je suis face a un problème comme le votre.  
est ce que vous pourriez m'aider a résoudre ce problème ?
 
merci d'avance


---------------
BESBES Noureddine

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] Communication SSL entre webservice et client

 

Sujets relatifs
Compteur java :: nb de messages/secComment créer une calculatrice en java ? Probleme d'affichage
Installer java sous linuxinstaller une machine virtuelle JAVA sur la clé USB elle-même
Encodage de sons sous javaClient Serveur en OpenORB
Java et linux (dos2linux)java.library.path dans MANIFEST
[JAVA] export en jar, et utilisation de librairies externes.[JAVA] commande windows pour recuperer navigateur par défaut
Plus de sujets relatifs à : [JAVA] Communication SSL entre webservice et client


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR