IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

[SSL] Mise en place d'un serveur relais consommant un autre serveur en https


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Par défaut [SSL] Mise en place d'un serveur relais consommant un autre serveur en https
    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,

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Par défaut
    Bonjour,

    J'ai un peu avancé sur le sujet : Au lieu de coder en "dur" l'emplacement du keystore, j'ai plutôt lancé la JVM en y ajoutant les arguments de paramétrage pour une connexion SSL dans le batch de lancement du serveur d'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set JONAS_OPTS=%JONAS_OPTS% -Djavax.net.ssl.keyStore="C:\new.jks"
    set JONAS_OPTS=%JONAS_OPTS% -Djavax.net.ssl.keyStorePassword="changeit"
    set JONAS_OPTS=%JONAS_OPTS% -Djava.protocol.handler.pkgs="com.sun.net.ssl.internal.www.protocol"
    Le serveur utilisé est un serveur JONAS, j'obtiens la trace suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    C:\Documents and Settings\anthony-bouquet>Exception during execution of org.objectweb.jonas.server
    erver : Error in Server start
    java.lang.Exception: Error in Server start
            at org.objectweb.jonas.server.Server.start(Server.java:678)
            at org.objectweb.jonas.server.Server.main(Server.java:205)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.objectweb.jonas.server.Bootstrap.main(Bootstrap.java:97)
    Caused by: java.lang.Exception: org.objectweb.jonas.service.ServiceException : Cannot init/start s
    vice 'db': Cannot access to HSQL: java.sql.SQLException: Connection is broken: Java heap space: or
    objectweb.jonas.service.ServiceException : Cannot access to HSQL: java.sql.SQLException: Connectio
    is broken: Java heap space
            at org.objectweb.jonas.server.Server$1.run(Server.java:642)
    Caused by: org.objectweb.jonas.service.ServiceException : Cannot init/start service 'db': Cannot a
    ess to HSQL: java.sql.SQLException: Connection is broken: Java heap space: org.objectweb.jonas.ser
    ce.ServiceException : Cannot access to HSQL: java.sql.SQLException: Connection is broken: Java hea
    space
            at org.objectweb.jonas.service.ServiceManager.startServices(ServiceManager.java:339)
            at org.objectweb.jonas.server.Server$1.run(Server.java:604)
    Caused by: org.objectweb.jonas.service.ServiceException : Cannot access to HSQL: java.sql.SQLExcep
    on: Connection is broken: Java heap space
            at org.objectweb.jonas.db.hsqldb.HsqlDBServiceImpl.doStart(HsqlDBServiceImpl.java:171)
            at org.objectweb.jonas.service.AbsServiceImpl.start(AbsServiceImpl.java:80)
            at org.objectweb.jonas.service.ServiceManager.startServices(ServiceManager.java:336)
            ... 1 more
    Caused by: java.sql.SQLException: Connection is broken: Java heap space
            at org.hsqldb.jdbc.Util.sqlException(Util.java:61)
            at org.hsqldb.jdbc.jdbcConnection.<init>(jdbcConnection.java:2452)
            at org.hsqldb.jdbcDriver.getConnection(jdbcDriver.java:183)
            at org.hsqldb.jdbcDriver.connect(jdbcDriver.java:161)
            at java.sql.DriverManager.getConnection(DriverManager.java:582)
            at java.sql.DriverManager.getConnection(DriverManager.java:185)
            at org.objectweb.jonas.db.hsqldb.HsqlDBServiceImpl.doStart(HsqlDBServiceImpl.java:167)
            ... 3 more
    Peut-être est-ce une erreur spécifique à ce serveur ? Auquel, cas mon fil de discussion n'est plus dans la section appropriée.

    Cdlt,

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Par défaut
    Petit up, je suis vraiment bloqué sur cette partie et visiblement ça n'a pas l'air de vous parler tout ça !
    Suis-je le seul à vouloir mettre en place une telle architecture ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Par défaut
    Je déterre ce lien pour y poster la solution.

    La version de JONAS que j'utilise actuellement est la 4.8.6. A priori, il y'a un problème de mémoire quand on active le SSL avec le service DB.
    N'utilisant pas ce dernier, je l'ai désactivé dans la conf du serveur et tout fonctionne correctement dorénavant !

    Salutations

Discussions similaires

  1. avoir l'IP ou le nom du serveur à partir d'un autre serveur
    Par aymen14 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 31/05/2008, 22h44
  2. Mise en place d'un serveur SMTP relai
    Par natelh dans le forum Réseau
    Réponses: 1
    Dernier message: 23/01/2008, 14h16
  3. Réponses: 2
    Dernier message: 21/01/2008, 16h11
  4. Mise en place d'un serveur de relais.
    Par kerkennah dans le forum Réseau
    Réponses: 2
    Dernier message: 21/05/2007, 17h04
  5. Réponses: 2
    Dernier message: 18/07/2006, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo