混合应用中的WAS 8.5.5 + Worklight 6.1和TLS 1.2

时间:2016-06-15 11:06:35

标签: ssl ibm-mobilefirst websphere hybrid-mobile-app tls1.2

我们正在迁移到WAS 8.5.5和TLS 1.2,并且正在观察一些意想不到的问题。

输入是:

  1. Worklight 6.1.0.1
  2. WAS 8.5.5.9 + SDK Java 8
  3. WAS已切换到TLS 1.2(遵循本指南) https://developer.ibm.com/answers/questions/206952/how-do-i-configure-websphere-application-server-ss.html
  4. 应用程序是混合

    当我们通过网络模拟器使用应用程序时 - 它工作正常。

    当我们通过IMC从硬件设备(Android或iOS)使用它时,我们会得到例外情况

    • "客户机"使用TLS 1.1
    • 服务器使用TLS 1.2
    • HTTPS握手错误

    不清楚什么是"客户"在这种情况下,为什么它使用TLS v1.1。 iOS设备(iPhone)Web浏览器启用了TLS 1.2 - 可以使用TLS 1.2协议打开HTTPS链接。 这是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
    

    我不知道接下来的步骤应该是什么。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

很明显TLSv1.2只针对您的客户过于激进。在WAS配置方面," ssl_tlsv2"可能是你能做的最好的。

答案 1 :(得分:0)

IMC正在造成这种情况。必须将其配置为开始使用TLS v1.2