[résolu] SSL, Certificat, & bad_record_mac

SSL, Certificat, & bad_record_mac [résolu] - Java - Programmation

Marsh Posté le 22-05-2006 à 11:46:54    

Bonjour,
 
Je suis actuellement en train de tester un serveur web via jmeter. Jusque là je n'avais pas de problèmes sauf qu'une partie du serveur utilise https (il s'agit du backoffice, etc).
 
Que ce soit sous Firefox, ou sous IE, le tout fonctionne : j'arrive à me connecter au serveur côté https.
 
Maintenant, étant donné que c'est jMeter le client web, c'est à lui de se connecter : cela plante.
 
Voilà ce que j'ai fais :
1. Export du certificat depuis IE (format DER)
2. keytool -import -trustcacerts -file serveur.cer -alias serveur
3. new URL("http://www.serveur.com/" ).openConnections().getContents();
 
Et là, magie :
 

javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
 at com.sun.net.ssl.internal.ssl.Alerts.
    getSSLException(Alerts.java:166)
    getSSLException(Alerts.java:117)
 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.
    recvAlert(SSLSocketImpl.java:1542)
    readRecord(SSLSocketImpl.java:863)
    performInitialHandshake(SSLSocketImpl.java:1025)
    startHandshake(SSLSocketImpl.java:1038)
 at sun.net.www.protocol.https.HttpsClient
    afterConnect(HttpsClient.java:402)
 at sun.net.www.protocol.httpsbstractDelegateHttpsURLConnection
    connect(AbstractDelegateHttpsURLConnection.java:170)
 at sun.net.www.protocol.http.HttpURLConnection
    getInputStream(HttpURLConnection.java:913)
 at java.net.URLConnection.getContent(URLConnection.java:682)
 at sun.net.www.protocol.https.HttpsURLConnectionImpl
    getContent(HttpsURLConnectionImpl.java:406)
 at com.glowria.https.TestHttpsClient.testURL(TestHttpsClient.java:51)
 at com.glowria.https.TestHttpsClient.main(TestHttpsClient.java:42)


 
J'ai aussi activé le debug, disponible sur les forums de java :
 
http://forum.java.sun.com/thread.j [...] 5&tstart=0
 
(à noter que je n'ai pas du tout trouver d'explications sur google, d'où mon empressement à poster sur divers forums de Prog)
 
Le plus bizarre c'est que j'arrive à me connecter sur le serveur mail de ma fac (lui même en https).
 
(c'est d'ailleurs le troisième message du topic sur les forums java)


Message édité par Baldurien le 29-05-2006 à 10:51:19
Reply

Marsh Posté le 22-05-2006 à 11:46:54   

Reply

Marsh Posté le 22-05-2006 à 15:56:09    

J'ai résolu une (grande) partie du problème : le protocole utilisé.  
 
Lorsque j'y vais par une socket :  
 

Code :
  1. void testSocket() throws UnknownHostException, IOException {
  2.     SSLSocket socket = (SSLSocket) SSLSocketFactory.getDefault().createSocket(
  3.         HTTPS_SERVER.substring("https://".length()), 443);
  4.     socket.setEnabledProtocols(new String[] {
  5.       "SSLv3"
  6.     });
  7.     socket.startHandshake();
  8.     socket.getOutputStream().write("GET / HTTP/1.0\r\n\r\n".getBytes("ASCII" ));
  9.     Scanner sc = new Scanner(socket.getInputStream());
  10.     System.out.println(">>>" );
  11.     while (sc.hasNextLine())
  12.       System.out.println(sc.nextLine());
  13.     System.out.println("<<<" );
  14.   }


 
Cela fonctionne.
 
J'essaye de faire pareil via la propriété https.protocols (avec comme valeur SSLv3), mais cela rate :/
 
(sauf si j'y vais via la classe URL)


Message édité par Baldurien le 22-05-2006 à 16:05:22
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed