javax.net.ssl.SSLHandshakeException: alerta fatal recibida: handshake_failure
java-ee ssl-certificate (2)
Problema resuelto.!!! A continuación están las soluciones.
Para Java 6: agregue los archivos jar a continuación a {JAVA_HOME} / jre / lib / ext. 1. bcprov-ext-jdk15on-154.jar 2. bcprov-jdk15on-154.jar
Agregar propiedad en {JAVA_HOME} /jre/lib/security/java.security security.provider.1 = org.bouncycastle.jce.provider.BouncyCastleProvider
Java 7: descargue el jar del siguiente enlace y añádalo a {JAVA_HOME} / jre / lib / security http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
Java 8: descargue el jar del siguiente enlace y añádalo a {JAVA_HOME} / jre / lib / security http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
El problema es que no se pudo descifrar 256 bits de cifrado.
Esta pregunta ya tiene una respuesta aquí:
Estoy publicando esta pregunta después de probar muchas opciones de dos días. A continuación están las opciones que probé.
- Deshabilitar validación de certificado ssl
- Al descargar crt del navegador y convertirlo a .jks e importar el almacén de claves.
Todavía estoy recibiendo este problema, cualquier ayuda muy apreciada de antemano.
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:1943)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1059)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1321)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1305)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:523)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1296)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at com.honeywell.sensibo.api.NewMain.main(NewMain.java:73)
Recientemente recibo errores similares porque los JDK recientes (y los navegadores, y la pila TLS de Linux, etc.) se niegan a comunicarse con algunos servidores de la red corporativa de mi cliente. La razón de esto es que algunos servidores en esta red todavía tienen certificados SHA-1.
Por favor vea: https://www.entrust.com/understanding-sha-1-vulnerabilities-ssl-longer-secure/ https://blog.qualys.com/ssllabs/2014/09/09/sha1-deprecation-what -Necesitas saber
Si este es tu caso actual (JDK reciente contra inscripción de certificados obsoletos), entonces tu mejor jugada es actualizar tu red a la tecnología de inscripción adecuada .
En caso de que deba proporcionar una solución temporal para eso, consulte otras respuestas para tener una idea sobre cómo hacer que su JDK confíe o desconfíe de ciertos algoritmos de inscripción:
Cómo forzar al servidor java a aceptar solo tls 1.2 y rechazar conexiones tls 1.0 y tls 1.1
De todos modos, insisto en que, en caso de que haya adivinado correctamente su problema, esta no es una buena solución al problema y que su administrador de red debería considerar eliminar estos certificados en desuso y obtener uno nuevo.