SSLHandshakeException lors de la connexion à un site en https

Je suis en train d'enregistrer un https site par jmeter (version 2.13, version de java - 1.8u31) et j'en suis SSLHandshakeException lors de la connexion à un site en https. Le message d'erreur est

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2011)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1113)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1363)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1391)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1375)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:436)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.open(MeasuringConnectionManager.java:107)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:517)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:331)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1146)
at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:240)  

J'ai activé la journalisation du débogage pour le SSL, mais je n'étais pas en mesure de comprendre la cause de racine. Il semble que le java client envoie le ClientHello mais ne reçoit pas le message ServerHello ( le serveur choisit la version la plus récente de SSL et le meilleur de la suite de chiffrement que le client et le serveur de soutien et envoie cette information au client). Je vois des différences entre les versions du protocole en cours d'envoi, lus et reçus par le client (TLSv1.1 vs TLSv1.2)

Est-ce la cause ? Si oui, comment puis-je résoudre ce problème?

Les journaux sont collés ici - Java SSLHandshakeException Journaux - Pastebin.com

Mise à jour

@Anand Bhatt a suggéré, j'ai analysé le site avec ssllabs et compris les suivantes

  1. Le serveur ne prend pas en charge TLSv1.2 qui est pris en charge par java 8
  2. Le serveur prend en charge uniquement une suite de chiffrement - TLS_RSA_WITH_AES_256_CBC_SHA
  3. Java 8u31 ne prend pas en charge la suite de chiffrement que le serveur prend en charge et qui est probablement le problème.

Est-ce que son droit? Si oui, comment peut-on faire la java 8 support client de la suite de chiffrement que le serveur prend en charge?

Vous avez précisé la version de Java ou le site que vous tentez de vous connecter. Consulter le site à l'aide de ssllabs.com/ssltest/index.html pour voir si elle prend en charge une suite de chiffrement que votre client est l'envoi. Vérifiez également la poignée de main de simulation de la section sur les résultats du test de la page pour voir si il y a des problèmes de connexion avec votre client.
J'ai mis à jour mes commentaires avec ssllabs analyse. Il semble java 8 ne prend pas en charge la suite de chiffrement que le serveur n'. Quelle serait la prochaine étape est l'ajout de la suite de chiffrement par commande keytool?

OriginalL'auteur Andy Dufresne | 2015-05-20