Ssl 为8.5.5+;混合应用中的Worklight 6.1和TLS 1.2

Ssl 为8.5.5+;混合应用中的Worklight 6.1和TLS 1.2,ssl,ibm-mobilefirst,websphere,hybrid-mobile-app,tls1.2,Ssl,Ibm Mobilefirst,Websphere,Hybrid Mobile App,Tls1.2,我们正在迁移到WAS 8.5.5和TLS 1.2,并观察到一些意外问题 输入为: Worklight 6.1.0.1 WAS 8.5.5.9+SDK Java 8 WAS切换至TLS 1.2(遵循本指南 ) 应用程序是混合的 当我们通过web emulator使用应用程序时,它运行良好 当我们通过IMC从硬件设备(Android或iOS)使用它时,我们会得到一个例外,即 “客户机”使用TLS 1.1 服务器使用TLS1.2 HTTPS握手错误 在这种情况下,不清楚什么是“客户机”,以及为什么

我们正在迁移到WAS 8.5.5和TLS 1.2,并观察到一些意外问题

输入为:

  • Worklight 6.1.0.1
  • WAS 8.5.5.9+SDK Java 8
  • WAS切换至TLS 1.2(遵循本指南 )
  • 应用程序是混合的

    当我们通过web emulator使用应用程序时,它运行良好

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

    • “客户机”使用TLS 1.1
    • 服务器使用TLS1.2
    • HTTPS握手错误
    在这种情况下,不清楚什么是“客户机”,以及为什么使用TLSV1.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
    
    我不知道我们下一步该怎么做。
    任何帮助都将不胜感激。

    似乎很清楚,TLSv1.2-only对您的客户来说太激进了。就WAS配置而言,“ssl_tlsv2”可能是您所能做的最好的了。

    是IMC造成的。必须将其配置为开始使用TLS v1.2

    问题在于强制TLC v1.2是一项安全要求。对我们来说,使用限制性较小的东西不是一个选择(至少不是最好的选择)。我们想要弄清楚的是这个客户端是什么,以及如何强制它使用TLSV1.2。或者我们如何能够证实它无法实现。