Bonjour,

J'ai en place l'architecture suivante :

Client WebService A -> Serveur Web A en http
Serveur Web A -> Serveur Web B en https

Donc en phrasé, celà donne : Un batch client consomme un service Web en http qui relaye cette demandé à un autre service web en https.

La question ici est donc de configurer le serveur web fonctionnant en http pour se connecter sur le serveur web fonctionnant en https. Le serveur que je tente donc de développer est un serveur "relais".

Afin de faire celà j'ai utilisé un bout de code client me permettant de récupérer un certificat fonctionnant sur ce dernier serveur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
public class SSLBuilder {
 
	public static  void sslInit() {
		System.err.println("Init SSL ! ");
		System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
		// Gestion certificat PROD
		//Récupération du keystore
		System.setProperty("javax.net.ssl.keyStore","c:\new.jks");
		System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
 
	}
Cette méthode statique est donc appelée à chaque fois que le serveur A est consommé afin de configurer la connexion au serveur B en SSL.

A savoir que cette méthode fonctionne très bien quand j'attaque le serveur B directement avec le client A mais dès que je l'adapte au serveur j'ai un "SSL handshake failure"

Le souci c'est que ceci ne fonctionne pas même en rentrant le chemin d'accès du certificat en dur comme vous le voyez dans l'exemple !
(Et pourtant celà fonctionne avec un simple client java).

Avez-vous une idée de comment déclarer un certificat sur l'archive ear ou encore directement sur le serveur d'application afin que celui-ci puisse emettre des requêtes en SSL sur un autre serveur ?

Merci d'avance,

Cordialement,