I'm not sure if this is the same issue (and I can't remember fully as I don't have access to the code anymore) but I ran into a heck of a time with ssl handshake because my the keystore file didn't function the same under jdk6/7 as it did under jdk5 and for whatever reason (maybe how it handles the cert chain is different?) the ftpserver project didn't play well with jdk6 created certstore. I guess it could just have been me. Take a look and see if a different jdk solves your problem. If not, my apologies for wasting your time.
Thanks, Matt From: Fernando Cesar da Silva [mailto:fsi...@synchro.com.br] Sent: Monday, November 11, 2013 1:24 PM To: ftpserver-us...@mina.apache.org Cc: 'Carlos Garbiatti'; 'Eder Miranda Ferreira Leite'; 'Crystian Guirau'; Bruno Cesar Proenca Subject: SSL handshake failed Importance: High Hi, I'm new to Apache FtpServer, we've done a configuration to use FtpServer embedded in a Grails Application and everything was working fine, until I try to setup the Explicit Security SSL Support. I've just provide the keystore information as done in sample "Embedding FtpServer in 5 minutes": // define SSL configuration SslConfigurationFactory ssl = new SslConfigurationFactory(); ssl.setKeystoreFile(new File("C:\\Certificados_Digitais\\xxxxxxx.jks")); ssl.setKeystorePassword("xxxxxxxxx"); // set the SSL configuration for the listener factory.setSslConfiguration(ssl.createSslConfiguration()); With the above information provided, the FTP Client works fine, until it sends the command AUTH SSL, after this command, when I try to establish a connection I've got the following error (entire log attached): 2013-11-11 15:44:01,321 [pool-6-thread-2] WARN impl.PassivePorts - Releasing unreserved passive port: 55341 2013-11-11 15:44:01,321 [pool-6-thread-2] INFO nio.FtpLoggingFilter - SENT: 150 File status okay; about to open data connection. 2013-11-11 15:44:01,321 [pool-6-thread-2] INFO nio.FtpLoggingFilter - SENT: 226 Closing data connection. 2013-11-11 15:44:01,322 [pool-6-thread-1] INFO nio.FtpLoggingFilter - RECEIVED: CDUP 2013-11-11 15:44:01,322 [pool-6-thread-2] INFO nio.FtpLoggingFilter - SENT: 250 Directory changed to /. 2013-11-11 15:44:01,323 [pool-6-thread-2] INFO nio.FtpLoggingFilter - RECEIVED: CWD / 2013-11-11 15:44:01,323 [pool-6-thread-1] INFO nio.FtpLoggingFilter - SENT: 250 Directory changed to / 2013-11-11 15:44:03,942 [pool-6-thread-2] WARN nio.FtpLoggingFilter - EXCEPTION : Message: SSL handshake failed. Line | Method ->> 495 | messageReceived in org.apache.mina.filter.ssl.SslFilter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 434 | callNextMessageReceived in org.apache.mina.core.filterchain.DefaultIoFilterChain | 46 | access$1200 . . . . . . in '' | 796 | messageReceived in org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1 | 119 | messageReceived . . . . in org.apache.mina.core.filterchain.IoFilterAdapter | 434 | callNextMessageReceived in org.apache.mina.core.filterchain.DefaultIoFilterChain | 426 | fireMessageReceived . . in '' | 715 | read in org.apache.mina.core.polling.AbstractPollingIoProcessor | 668 | process . . . . . . . . in '' | 657 | process in '' | 68 | access$600 . . . . . . in '' | 1141 | run in org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor | 64 | run . . . . . . . . . . in org.apache.mina.util.NamePreservingRunnable | 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker | 908 | run . . . . . . . . . . in '' ^ 662 | run in java.lang.Thread Caused by SSLException: Unrecognized SSL message, plaintext connection? ->> 152 | bytesInCompletePacket in com.sun.net.ssl.internal.ssl.EngineInputRecord - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 806 | readNetRecord in com.sun.net.ssl.internal.ssl.SSLEngineImpl | 721 | unwrap . . . . . . . . in '' | 607 | unwrap in javax.net.ssl.SSLEngine | 725 | unwrap . . . . . . . . in org.apache.mina.filter.ssl.SslHandler | 663 | unwrapHandshake in '' | 549 | handshake . . . . . . . in '' | 349 | messageReceived in '' | 476 | messageReceived . . . . in org.apache.mina.filter.ssl.SslFilter | 434 | callNextMessageReceived in org.apache.mina.core.filterchain.DefaultIoFilterChain | 46 | access$1200 . . . . . . in '' | 796 | messageReceived in org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1 | 119 | messageReceived . . . . in org.apache.mina.core.filterchain.IoFilterAdapter | 434 | callNextMessageReceived in org.apache.mina.core.filterchain.DefaultIoFilterChain | 426 | fireMessageReceived . . in '' | 715 | read in org.apache.mina.core.polling.AbstractPollingIoProcessor | 668 | process . . . . . . . . in '' | 657 | process in '' | 68 | access$600 . . . . . . in '' | 1141 | run in org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor | 64 | run . . . . . . . . . . in org.apache.mina.util.NamePreservingRunnable | 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker | 908 | run . . . . . . . . . . in '' ^ 662 | run in java.lang.Thread | Error 2013-11-11 15:44:03,977 [pool-6-thread-2] ERROR impl.DefaultFtpHandler - Exception caught, closing session Message: SSL handshake failed. Am I missing something? Any clue will be very helpful. Regards, Fernando Cesar. ________________________________ This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail.