apache commons net ssl握手错误与android

我搜索了一个答案,但我没有找到任何答案。 我正在为Android编写FTP同步工具,我想提供以下服务器类型: – FTP – > Works – SFTP – > Works – FTPS – >不再工作了

我使用apache commons网络库,在2.2版本的开头现在我检查3.0.1和3.1 snapshopt但问题并没有消失。

错误消息:

W/System.err( 433): javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x2672b0: Failure in SSL library, usually a protocol error W/System.err( 433): error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol (external/openssl/ssl/s23_srvr.c:589 0xad12959f:0x00000000) W/System.err( 433): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method) W/System.err( 433): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474) W/System.err( 433): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:328) W/System.err( 433): at org.apache.commons.net.ftp.FTPSClient.sslNegotiation(FTPSClient.java:259) W/System.err( 433): at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java:200) W/System.err( 433): at org.apache.commons.net.SocketClient.connect(SocketClient.java:169) W/System.err( 433): at org.apache.commons.net.SocketClient.connect(SocketClient.java:189) W/System.err( 433): at com.syncoorp.FTPSyncX_Pro.server.FTPSServer.remoteConnect(FTPSServer.java:87) 

我不知道我现在能做什么,解决这个问题,我不想告诉我的客户他们只能在android上使用FTPS <2.3

我的连接代码是:

  client = new FTPSClient(implictSSL); KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509"); kmf.init(KeyStore.getInstance("BKS"), "wshr.ut".toCharArray()); client.setTrustManager(new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { return null; } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } }); client.setKeyManager(kmf.getKeyManagers()[0]); client.setNeedClientAuth(false); client.setUseClientMode(false); if(timeout > 0) { client.setConnectTimeout(timeout); client.setDataTimeout(timeout); client.setDefaultTimeout(timeout); } client.connect(values.host, values.port); 

有没有人知道如何解决它或有一个解决方法?

最好的问候,PrDatur