Error de protocolo de enlace SSL - Java 1.8

Simplemente dejándoles saber a la gente sobre un problema que tuve que muchos parecían haber tenido después de actualizar a Java 1.8. No todas las soluciones son iguales, por lo tanto, publico cómo resolví esto.

Pero primero ... Esta no es una solución digna de los sistemas de producción ya que la seguridad se está rebajando de manera efectiva. Sin embargo, si está bloqueado las pruebas, etc., probablemente sea bastante adecuado.

Mi problema era que no importaba lo que hiciera ... habilité SSLv3, etc. Siempre recibí

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

Estos son los pasos que tomé para 'resolver' esto.

Primero, descubrí qué cifrado estaba usando el servidor. Lo hice a través de openssl.

openssl s_client -host yourproblemhost.com -port 443

Esto produce (al final ...)

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

Ahora ... ¿qué usamos 'Java-wise' para habilitar ese cifrado?

Enlace de Oracle

En ese enlace, tiene los nombres y su contraparte Java. Entonces, para RC4-MD5, tenemos SSL_RSA_WITH_RC4_128_MD5.

bien. Ahora agregué una propiedad del sistema.

-Dhttps.cipherSuites=SSL_RSA_WITH_RC4_128_MD5

Y en mi código ...

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

De nuevo..este es un último recurso absoluto... Pero si te golpeas la cabeza contra una pared para que funcione (para probar), espero que te sea útil.