Wir migrieren zu WAS 8.5.5 und TLS 1.2 und beobachten einige unerwartete Probleme.WAS 8.5.5 + Worklight 6.1 und TLS 1.2 in Hybridanwendung
Die Eingänge sind:
- Arbeitsscheinwerfer 6.1.0.1
- WS 8.5.5.9 + SDK Java 8
- wurde, wird in TLS 1.2 (im Anschluss an diese Führungs https://developer.ibm.com/answers/questions/206952/how-do-i-configure-websphere-application-server-ss.html)
Anwendung ist Hybrid
Wenn wir Anwendung über Web Emu verwenden Lator - es funktioniert gut.
Wenn wir es von Hardware-Gerät (Android oder iOS) nutzen über IMC - wir Ausnahme erhalten, die sagt
- "Client" verwendet TLS 1.1
- Server verwendet TLS 1.2
- Fehler von HTTPS-Handshake
Es ist nicht klar, was "Client" in diesem Fall ist und warum es TLS v1.1 verwendet. iOS-Gerät (iPhone) Webbrowser ist TLS 1.2 aktiviert - kann HTTPS-Links mit TLS 1.2-Protokoll öffnen. Hier ist voll Stack-Trace von SystemOut.log
[6/14/16 11:16:32:197 EDT] 000000b2 SSLHandshakeE E SSLC0008E: Unable to initialize SSL connection. Unauthorized access was denied or security settings have expired. Exception is javax.net.ssl.SSLHandshakeException: Client requested protocol TLSv1.1 not enabled or not supported
at com.ibm.jsse2.C.z(C.java:532)
at com.ibm.jsse2.ap.b(ap.java:476)
at com.ibm.jsse2.ap.c(ap.java:112)
at com.ibm.jsse2.ap.wrap(ap.java:277)
at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:21)
at com.ibm.ws.ssl.channel.impl.SSLUtils.handleHandshake(SSLUtils.java:748)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.readyInbound(SSLConnectionLink.java:567)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.ready(SSLConnectionLink.java:296)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)
Caused by: javax.net.ssl.SSLHandshakeException: Client requested protocol TLSv1.1 not enabled or not supported
at com.ibm.jsse2.j.a(j.java:31)
at com.ibm.jsse2.ap.a(ap.java:11)
at com.ibm.jsse2.C.a(C.java:342)
at com.ibm.jsse2.C.a(C.java:100)
at com.ibm.jsse2.E.a(E.java:140)
at com.ibm.jsse2.E.a(E.java:813)
at com.ibm.jsse2.C.r(C.java:44)
at com.ibm.jsse2.C$b.a(C$b.java:2)
at com.ibm.jsse2.C$b.run(C$b.java:3)
at java.security.AccessController.doPrivileged(AccessController.java:686)
at com.ibm.jsse2.C$c.run(C$c.java:11)
at com.ibm.ws.ssl.channel.impl.SSLUtils.handleHandshake(SSLUtils.java:835)
... 8 more
Ich habe keine Ahnung, was die nächsten Schritte sein sollten. Jede Hilfe wird sehr geschätzt.
Das Problem ist, es ist eine Sicherheitsanforderung, TLC v 1.2 zu erzwingen. Und etwas weniger restriktiv zu verwenden, ist für uns keine Option (zumindest nicht die beste). Was wir herausfinden wollen, ist, was dieser Client ist und wie er dazu gezwungen werden kann, TLS v1.2 zu verwenden. Oder wie wir sicherstellen können, dass dies nicht erreicht werden kann. –