Falha no handshake SSL - Java 1.8

Apenas avisei as pessoas sobre um problema que muitos pareciam ter após atualizar para o Java 1.8. Nem todas as soluções são as mesmas, portanto, postando como eu resolvi isso.

Mas primeiro ... Esta não é uma solução digna de sistemas de produção, pois a segurança está sendo efetivamente rebaixada. No entanto, se você estiver bloqueado nos testes, etc., provavelmente é bastante adequado.

Meu problema foi que, não importa o que eu fiz ... habilitei o SSLv3 etc. Sempre recebi

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

Aqui estão os passos que tomei para 'resolver' isso.

Primeiro, descobri qual cifra o servidor estava usando. Eu fiz isso via openssl.

openssl s_client -host yourproblemhost.com -port 443

Isso produz (no final ...)

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

Agora .. o que usamos 'Java-wise' para habilitar essa cifra?

Link Oracle

Nesse link, ele possui os nomes e seus equivalentes Java. Portanto, para RC4-MD5, temos SSL_RSA_WITH_RC4_128_MD5.

tudo bem. Agora eu adicionei uma propriedade System.

-Dhttps.cipherSuites=SSL_RSA_WITH_RC4_128_MD5

E no meu código ...

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

Novamente..este é um último recurso absoluto 'correção'... Mas se você está batendo a cabeça contra uma parede para fazê-la funcionar (para testes), espero que seja útil.

questionAnswers(3)

yourAnswerToTheQuestion