I ran a Java (1.8) program on Windows 10 64x for FTP TLS (org.apache.commons.net.ftp):
FTPSClient ftpClient = new FTPSClient();
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
// LISTENER
ftpClient.addProtocolCommandListener(
new PrintCommandListener(new PrintWriter(System.out), true));
ftpClient.connect(server);
ftpClient.login(user, pass);
// Enter local passive mode
ftpClient.enterLocalPassiveMode();
// useEpsvWithIPv4
ftpClient.setUseEPSVwithIPv4(true);
// Set protection buffer size
ftpClient.execPBSZ(0);
// Set data channel protection to private
ftpClient.execPROT("P");
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
ftpClient.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager());
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
System.out.println("Remote system is " +
ftpClient.getEnabledCipherSuites());
System.out.println("SSL: " +
ftpClient.getEnableSessionCreation());
// PROTOCOLOS
String[] Protocols = ftpClient.getEnabledProtocols();
System.out.println("Protocols " + Protocols);
// AUTH
boolean Auth = ftpClient.getNeedClientAuth();
System.out.println("Auth: " + Auth);
ftpClient.getWantClientAuth();
ftpClient.getTrustManager();
ftpClient.feat();
// APPROACH #1: using retrieveFile(String, OutputStream)
String remoteFile1 = "/readme.txt";
File downloadFi