APAR status
Closed as program error.
Error description
A MobileFirst Platform application running on an Android device that uses Android 4.4.2 or earlier can not connect to the MobileFirst Platform Server using HTTPS if the server only offers TLS 1.2 as an SSL transport protocol. When this problem occurs, an error such as the following may be observed in the logcat log from the Android device: 05-02 10:44:16.514: W/System.err(1895): javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xb8f16100: Failure in SSL library, usually a protocol error 05-02 10:44:16.524: W/System.err(1895): error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:744 0xa8e77926:0x00000000) 05-02 10:44:16.524: W/System.err(1895): at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenS SLSocketImpl.java:449) 05-02 10:44:16.524: W/System.err(1895): at android.net.SSLCertificateSocketFactory.verifyHostname(SSLCertif icateSocketFactory.java:190) 05-02 10:44:16.524: W/System.err(1895): at android.net.SSLCertificateSocketFactory.createSocket(SSLCertific ateSocketFactory.java:435) 05-02 10:44:16.524: W/System.err(1895): at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocket Factory.java:382) 05-02 10:44:16.524: W/System.err(1895): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openCo nnection(DefaultClientConnectionOperator.java:165) 05-02 10:44:16.534: W/System.err(1895): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEnt ry.java:164) 05-02 10:44:16.534: W/System.err(1895): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(Abstrac tPooledConnAdapter.java:119) 05-02 10:44:16.534: W/System.err(1895): at org.apache.http.impl.client.DefaultRequestDirector.execute(Defau ltRequestDirector.java:360) 05-02 10:44:16.534: W/System.err(1895): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractH ttpClient.java:555) 05-02 10:44:16.534: W/System.err(1895): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractH ttpClient.java:487) 05-02 10:44:16.534: W/System.err(1895): at com.worklight.wlclient.WLRequestSender.run(WLRequestSender.java: 47) 05-02 10:44:16.534: W/System.err(1895): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec utor.java:1112) 05-02 10:44:16.534: W/System.err(1895): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExe cutor.java:587) 05-02 10:44:16.534: W/System.err(1895): at java.lang.Thread.run(Thread.java:841) 05-02 10:44:16.534: W/System.err(1895): Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xb8f16100: Failure in SSL library, usually a protocol error 05-02 10:44:16.534: W/System.err(1895): error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:744 0xa8e77926:0x00000000) 05-02 10:44:16.534: W/System.err(1895): at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 05-02 10:44:16.534: W/System.err(1895): at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenS SLSocketImpl.java:406) 05-02 10:44:16.534: W/System.err(1895): ... 13 more
Local fix
In the native Android code of the MobileFirst Platform hybrid application, in the "onCreate()" method in the application's main activity, it is possible to replace the default SSLSocketFactory provided by Android with one that enables TLS 1.2, immediately after the call to "WL.createInstance(this)", in order to accommodate the use of TLS 1.2 with Android versions 4.4.2 and earlier. Specific steps and code to accomplish this are beyond the scope of this APAR.
Problem summary
**************************************************************** * USERS AFFECTED: * * All users on 6.2 to 8.0 using TLS on Android * **************************************************************** * PROBLEM DESCRIPTION: * * When trying to connect to a server enabled with TLS1.2 from * * an Android device with OS 4.2 the application fails to * * connect. The reason for the issue is because by default * * TLS1.2 is not enabled on Android devices with OS 4.2 and * * lower. * **************************************************************** * RECOMMENDATION: * * - * ****************************************************************
Problem conclusion
The issue is resolved by programmatically enabling TLS on Android devices with OS <4.2.
Temporary fix
Comments
APAR Information
APAR number
PI64093
Reported component name
MOBILE1ST PLATF
Reported component ID
5725I4301
Reported release
710
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-06-13
Closed date
2016-12-07
Last modified date
2016-12-07
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
MOBILE1ST PLATF
Fixed component ID
5725I4301
Applicable component levels
R620 PSY
UP
R630 PSY
UP
R700 PSY
UP
R710 PSY
UP
R800 PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSZH4A","label":"IBM Worklight"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"710","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
07 December 2016