2016-07-04 7 views
0

Ich habe eine jboss Version Version 6.3.0.GA, mit Java-Version 1.7.0_71 Meine Kollegen auf Remote-Server-Änderungen erlaubt TLS-Protokoll von 1.1 bis 1.2, und jetzt muss ich meinen Client aktualisieren (in jboss implementiert). Das Problem ist, dass ich nach dieser Änderung erhalten:Jboss - Handshake-Fehler - Client-Verbindung mit TLSv1.1 anstelle von TLSv1.2

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

In ssl debug ich sehe:

5:22:43,921 INFO [stdout] (http-/0.0.0.0:8080-1) *** ClientHello, TLSv1 
15:22:43,923 INFO [stdout] (http-/0.0.0.0:8080-1) RandomCookie: GMT: 1467638563 bytes = { 250, 245, 94, 108, 232, 16, 43, 124, 53, 95, 38, 104, 249, 96, 71, 207, 230, 7, 84, 183, 41, 224, 63, 213, 186, 7, 179, 255 } 
15:22:43,923 INFO [stdout] (http-/0.0.0.0:8080-1) Session ID: {} 
15:22:43,923 INFO [stdout] (http-/0.0.0.0:8080-1) Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV] 
15:22:43,924 INFO [stdout] (http-/0.0.0.0:8080-1) Compression Methods: { 0 } 
15:22:43,924 INFO [stdout] (http-/0.0.0.0:8080-1) Extension elliptic_curves, curve names: {secp256r1, sect163k1, sect163r2, secp192r1, secp224r1, sect233k1, sect233r1, sect283k1, sect283r1, secp384r1, sect409k1, sect409r1, secp521r1, sect571k1, sect571r1, secp160k1, secp160r1, secp160r2, sect163r1, secp192k1, sect193r1, sect193r2, secp224k1, sect239k1, secp256k1} 
15:22:43,924 INFO [stdout] (http-/0.0.0.0:8080-1) Extension ec_point_formats, formats: [uncompressed] 
15:22:43,925 INFO [stdout] (http-/0.0.0.0:8080-1) Extension server_name, server_name: [host_name: cxg7d.test.centurylink.com] 
15:22:43,925 INFO [stdout] (http-/0.0.0.0:8080-1) *** 
15:22:43,925 INFO [stdout] (http-/0.0.0.0:8080-1) http-/0.0.0.0:8080-1, WRITE: TLSv1 Handshake, length = 184 
15:22:43,958 INFO [stdout] (http-/0.0.0.0:8080-1) http-/0.0.0.0:8080-1, READ: TLSv1.2 Alert, length = 2 
15:22:43,959 INFO [stdout] (http-/0.0.0.0:8080-1) http-/0.0.0.0:8080-1, RECV TLSv1 ALERT: fatal, handshake_failure 
15:22:43,959 INFO [stdout] (http-/0.0.0.0:8080-1) http-/0.0.0.0:8080-1, called closeSocket() 
15:22:43,960 INFO [stdout] (http-/0.0.0.0:8080-1) http-/0.0.0.0:8080-1, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 
15:22:43,963 ERROR [stderr] (http-/0.0.0.0:8080-1) AxisFault 
15:22:43,964 ERROR [stderr] (http-/0.0.0.0:8080-1) faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException 
15:22:43,964 ERROR [stderr] (http-/0.0.0.0:8080-1) faultSubcode: 
15:22:43,964 ERROR [stderr] (http-/0.0.0.0:8080-1) faultString: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 

Auch nach unten Änderung

1 angewendet wurde - aktualisiert die „standalone.xml "mit folgenden Werten

<system-properties> 
    <property name="https.protocols" value="TLSv1.2"/> 
</system-properties> 

2 - unten hinzugefügt JAVA Optionen zu serv er starten:

-Djavax.net.debug=all -Ddeployment.security.TLSv1.2=true -Ddeployment.security.TLSv1.2=true -Ddeployment.security.TLSv1=false -Dhttps.protocols=TLSv1.2 

3 - Änderungen grafisch die Protokolle in Java-Konsole JDK control panel

aber nichts Händedruck noch vorhanden ist. Ich vermute, dass der Fehler auf "Client Hello" ist, die immer noch TLSv1 statt 1.2 verwenden. Haben Sie einen Vorschlag, diesen Wert zu erzwingen? S.

Antwort

0

Keine Möglichkeit, TLSv1.2 für Java 1.7.0_71 mithilfe der Eigenschaftendatei zu erzwingen. Die einzige Methode, die funktioniert hat, ist das Hinzufügen des folgenden Java-Codes in das Programm:

socket.setEnabledProtocols(new String[] {"SSLv2Hello", "TLSv1", "TLSv1.1", "TLSv1.2"}); 
Verwandte Themen