Why recieving error message- `handshake_failure. Code: 234` with camel FTPS component ?

Solution Verified - Updated -

Issue

  • I'm using the camel-ftp component to do ftp over ssl (ftps) i can see the connection from the endpoint to the SFTPPlus server in a tcpdump and i can see a client hello and a server hello and the server sends its certificate, but the connection is closed as the client is not sending its certificate back to the server.

  • I would expect it to send it back automatically, but is there any option that need to be set to force the component to send its certificate?

  • Error logs

2015-10-08 21:21:20,437 | WARN  | xxx/yyy/zzz | FtpConsumer                      | rg.apache.camel.util.CamelLogger  224 | 141 - org.apache.camel.camel-core - 2.15.3 | Consumer FtpConsumer[ftps://devops@HOSTNAME:15030/xxx/yyy/zzz?binary=false&delay=5000&delete=true&passiveMode=true&password=xxxxxx&readLock=rename&securityProtocol=TLS&throwExceptionOnConnectFailed=true] failed polling endpoint: Endpoint[ftps://devops@HOSTNAME:15030/var/sftpplus/test?binary=false&delay=5000&delete=true&passiveMode=true&password=xxxxxx&readLock=rename&securityProtocol=TLS&throwExceptionOnConnectFailed=true]. Will try again at next poll. Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - File operation failed: 234 Security data exchange complete.
 Received fatal alert: handshake_failure. Code: 234]
org.apache.camel.component.file.GenericFileOperationFailedException: File operation failed: 234 Security data exchange complete.
 Received fatal alert: handshake_failure. Code: 234
    at org.apache.camel.component.file.remote.FtpOperations.connect(FtpOperations.java:117)[143:org.apache.camel.camel-ftp:2.15.3]
    at org.apache.camel.component.file.remote.FtpsOperations.connect(FtpsOperations.java:40)[143:org.apache.camel.camel-ftp:2.15.3]
    at org.apache.camel.component.file.remote.RemoteFileConsumer.connectIfNecessary(RemoteFileConsumer.java:203)[143:org.apache.camel.camel-ftp:2.15.3]
    at org.apache.camel.component.file.remote.RemoteFileConsumer.recoverableConnectIfNecessary(RemoteFileConsumer.java:183)[143:org.apache.camel.camel-ftp:2.15.3]
    at org.apache.camel.component.file.remote.RemoteFileConsumer.prePollCheck(RemoteFileConsumer.java:59)[143:org.apache.camel.camel-ftp:2.15.3]
    at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:106)[141:org.apache.camel.camel-core:2.15.3]
    at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)[141:org.apache.camel.camel-core:2.15.3]
    at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)[141:org.apache.camel.camel-core:2.15.3]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_75]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)[:1.7.0_75]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)[:1.7.0_75]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.7.0_75]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_75]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_75]
    at java.lang.Thread.run(Thread.java:745)[:1.7.0_75]
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)[:1.7.0_75]
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)[:1.7.0_75]
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1979)[:1.7.0_75]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1086)[:1.7.0_75]
    at sun.security.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1725)[:1.7.0_75]
    at sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:122)[:1.7.0_75]
    at sun.security.ssl.Handshaker.sendChangeCipherSpec(Handshaker.java:1005)[:1.7.0_75]
    at sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish(ClientHandshaker.java:1161)[:1.7.0_75]
    at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:1073)[:1.7.0_75]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:341)[:1.7.0_75]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:901)[:1.7.0_75]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:837)[:1.7.0_75]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1023)[:1.7.0_75]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)[:1.7.0_75]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)[:1.7.0_75]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)[:1.7.0_75]
    at org.apache.commons.net.ftp.FTPSClient.sslNegotiation(FTPSClient.java:269)[135:org.apache.commons.net:3.3.0]
    at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java:211)[135:org.apache.commons.net:3.3.0]
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:183)[135:org.apache.commons.net:3.3.0]
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)[135:org.apache.commons.net:3.3.0]
    at org.apache.camel.component.file.remote.FtpOperations.connect(FtpOperations.java:96)[143:org.apache.camel.camel-ftp:2.15.3]
    ... 14 more

Environment

  • Red Hat JBoss Fuse
    • 6.1.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.