[ 
https://issues.apache.org/jira/browse/NET-687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17406296#comment-17406296
 ] 

Vladimir I commented on NET-687:
--------------------------------

So now it is mandatory to `execPROT` for FTPS connections, otherwise, it sets 
for data connections plain socket only and timeout after a while because the 
other party is expecting a handshake.

It has issues:

1) for TLS control connections without PROT we try to use plain sockets for 
data transfer (why? isn't it logical to use SSL in this case?).

2) all clients have to call `execPROT`. Which is i believe is fragile since it 
is mandatory now and it should be called before any data-related command.

3) existing clients are not issuing PROT command, so it leads to 
incompatibility and issues in all of them (requires update)

 

 

> [FTPS] javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
> --------------------------------------------------------------------------
>
>                 Key: NET-687
>                 URL: https://issues.apache.org/jira/browse/NET-687
>             Project: Commons Net
>          Issue Type: Bug
>          Components: FTP
>    Affects Versions: 3.7
>         Environment: Tested with JDK 8, 11, 13, 14
>            Reporter: Mikael
>            Priority: Major
>             Fix For: 3.7.1
>
>
> After adding the self signed polynesie.cer certificate to JVM security 
> (_jdk-x.x.x/lib/security_) :
> {code:java}
> keytool.exe -import -storepass "changeit" -keystore "./cacerts" -alias 
> polynesie.cer -file ./polynesie.cer -noprompt{code}
>  polynesie.cer obtained by copying certificate part from this command line 
> result :
> {code:java}
> openssl s_client -connect ftp0.gov.pf:21 -starttls ftp{code}
> Trying to retrieve a file with ftpes :
> {code:java}
> java -cp commons-net-examples-3.5.jar;commons-net-3.5.jar 
> examples/ftp/FTPClientExample -A -p TLS,false -e -b ftp0.gov.pf 
> DataVRS/fiche_Station_VRS_VAI1.pdf fiche_Station_VRS_VAI1.pdf{code}
> Produce this exception :
> {code:java}
> javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
>         at 
> java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(Unknown 
> Source)
>         at java.base/sun.security.ssl.SSLSocketInputRecord.decode(Unknown 
> Source)
>         at java.base/sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
>         at java.base/sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
>         at 
> java.base/sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown 
> Source)
>         at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown 
> Source)
>         at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown 
> Source)
>         at 
> org.apache.commons.net.ftp.FTPSClient._openDataConnection_(FTPSClient.java:642)
>         at 
> org.apache.commons.net.ftp.FTPClient._retrieveFile(FTPClient.java:1907)
>         at 
> org.apache.commons.net.ftp.FTPClient.retrieveFile(FTPClient.java:1893)
>         at testFTP2.FTPClientExample.main(FTPClientExample.java:513)
> {code}
> It is probably the same error of ssl_reuse session as NET-408.
> Same try with ftp4j library reports this error :
> {code:java}
> code=522, message= SSL connection failed; session reuse required: see 
> require_ssl_reuse option in vsftpd.conf man page
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to