Bonjour à tous,
Je suis sur un projet où nous travaillons en jdk 1.4.2. Je suis en train de faire un petit test client/serveur en RMI sur une couche SSL.

J'ai bien regardé la doc à ce sujet, et j'ai fait notamment une petite classe Hello, qui implémente l'interface HelloInterface.

À l'exécution j'ai l'erreur suivante :
java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:274)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at com.infotel.rmitest.server.Hello.main(Hello.java:56)
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SunJSSE_ax.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(DashoA12275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA12275)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
at java.io.DataOutputStream.flush(DataOutputStream.java:101)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
... 4 more
Caused by: sun.security.validator.ValidatorException: No trusted certificate found
at sun.security.validator.SimpleValidator.buildTrustedChain(SimpleValidator.java:304)
at sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:107)
at sun.security.validator.Validator.validate(Validator.java:202)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(DashoA12275)
at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(DashoA12275)
... 15 more
Cette erreur se produit dans ce code :
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
public static void main(String[] args)
    {
        try
        {
            RMIClientSocketFactory csf = new RMISSLClientSocketFactory();
            RMIServerSocketFactory ssf = new RMISSLServerSocketFactory();
            HelloInterface myHello = new Hello(csf, ssf);
 
            Registry reg = LocateRegistry.getRegistry("lat203", 1099, csf);
            //createRegistry(1099, csf, ssf);
            //Naming.rebind("rmi://lat203/rmiSalut", myHello);
            reg.rebind("rmi://lat203/rmiSalut", myHello); // ICI l'erreur.
            System.out.println("L'objet est publie.");
        }
        catch (RemoteException e)
        {
            e.printStackTrace();
        }
 
    }
}
Auriez-vous une idée de ce qui se trame ?
Merci d'avance.