10 December, 2012 08:30:00 Miguel Calvo Traveler | Comentarios (2)
Recientemente estamos teniendo problemas en un cliente que tiene desplegado Lotus Traveler 8.5.3.3IF1, es decir, la última versión disponible a fecha de hoy. El problema está en la configuración de los dispositivos Android. Ningún problema con los dispositivos iOS (iPhone, iPad ).
Como el error se produce antes de que el cliente se comunique con el servidor no disponemos de información en relación al problema en el servidor.
En el dispositivo Android podemos descargar e instalar el apk de Lotus Traveler. Como siempre la misma versión utilizada en el servidor.
Tras indicar el nombre de servidor "servidor.dominio.com", el usuario y la contraseña pulsamos en el botón "Siguiente"
NOTA: Desde la versión 8.5.2 no es necesario indicar "https://servidor.dominio.com/servlet/traveler", y es el propio cliente Traveler el que prueba primero con el puerto 443 y posteriormente con el 80, añadiéndole a la URL los parámetros necesarios.
Inmediatamente obtenemos el mensaje de error.
Ante este críptico mensaje tan sólo podemos abrir el registro para ver si disponemos de información adicional. ( Ver registro )
Desafortunadamente, la información del registro es igualmente críptica
Sin embargo, tenemos la posibilidad de acceder a más información, pulsando el botón "Exportar". Esta acción vuelca información de "bajo" nivel en el archivo trace0.txt
trace0.txt podemos encontralo en el dispositivo Android en la ruta
mnt/sdcard/Android/data/com.lotus.sync.traveler/files/lotus/trace0.txt
En él podemos encontrar los errores de Java e intuir la causa del nuestro en particular.
En nuestro caso, errores con certificados SSL, que son un quebradero de cabeza en plataforma Android.
2012/12/04 18:04:23.084 9130 FINE ConfigureApplication.testURI:862 javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x2a2118: Failure in SSL library, usually a protocol error
error:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert unexpected message (external/openssl/ssl/s23_clnt.c:658 0x40282cc3:0x00000000)
javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x2a2118: Failure in SSL library, usually a protocol error
error:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert unexpected message (external/openssl/ssl/s23_clnt.c:658 0x40282cc3:0x00000000)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:460)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:614)
at org.apache.http.impl.io.SocketInputBuffer.
at org.apache.http.impl.SocketHttpClientConnection.createSessionInputBuffer(SocketHttpClientConnection.java:83)
at org.apache.http.impl.conn.DefaultClientConnection.createSessionInputBuffer(DefaultClientConnection.java:170)
at org.apache.http.impl.SocketHttpClientConnection.bind(SocketHttpClientConnection.java:106)
at org.apache.http.impl.conn.DefaultClientConnection.openCompleted(DefaultClientConnection.java:129)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:172)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
at com.lotus.mobileInstall.ConfigureApplication.a(ConfigureApplication.java:792)
at com.lotus.mobileInstall.ConfigureApplication.a(ConfigureApplication.java:748)
at com.lotus.mobileInstall.ConfigureApplication.c(ConfigureApplication.java:705)
at com.lotus.mobileInstall.ConfigureApplication.a(ConfigureApplication.java:77)
at ad.run(ConfigureApplication.java:390)
Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x2a2118: Failure in SSL library, usually a protocol error
error:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert unexpected message (external/openssl/ssl/s23_clnt.c:658 0x40282cc3:0x00000000)
at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:410)
... 19 more
Las pruebas las realizamos con Android 4.0.4.
@Rosa
El problema lo estaba ocasionando el proxy utilizado en el cliente. Una vez se hubo reemplazado por un Apache adecuadamente configurado el problema desapareció.
Un saludo,
Cual fue la solucion la problema