java java-ee ssl-certificate

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é.

  1. Deshabilitar validación de certificado ssl
  2. 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.