SSL négociation a Échoué - Java 1.8

Juste à laisser les gens savent au sujet d'un problème que j'ai eu que beaucoup semblaient avoir eu après la mise à jour de Java 1.8. Pas toutes les solutions sont les mêmes donc de poster comment j'ai résolu le problème.

Mais d'abord... Ce n'est pas une solution digne de systèmes de production étant donné que la sécurité est effectivement revus à la baisse. Toutefois, si vous êtes bloqué etc tests. il est probablement tout à fait approprié.

Mon problème est que, peu importe ce que j'ai fait... permis SSLv3 etc. J'ai toujours reçu un

"javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure".

Voici les étapes que j'ai pris pour "résoudre" ce.

Tout d'abord, j'ai découvert qui de chiffrement du serveur à l'aide. Je l'ai fait via openssl.

openssl s_client -host yourproblemhost.com -port 443

Ce taux (à la fin...)

SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : RC4-MD5

Maintenant.. ce qui ne nous utilisons "Java-sage" de façon à permettre que de chiffrement?

Oracle lien

Dans ce lien, il a les noms et leurs Java homologue. Donc, pour RC4-MD5, nous avons SSL_RSA_WITH_RC4_128_MD5.

ok bon. Maintenant, j'ai ajouté un Système de propriété.

-Dhttps.cipherSuites=SSL_RSA_WITH_RC4_128_MD5

Et dans mon code...

Security.setProperty("jdk.tls.disabledAlgorithms", "" /*disabledAlgorithms */ );

Nouveau.. ce n'est qu'en dernier recours "réparer" ... Mais si vous êtes frapper votre tête vis d'un mur pour essayer de le faire fonctionner (pour les tests), j'espère que c'est utile.

OriginalL'auteur James | 2015-10-09