添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
痛苦的柑橘  ·  Results - OpenURL ...·  3 周前    · 
知识渊博的豆芽  ·  Results - OpenURL ...·  1 周前    · 
仗义的电脑桌  ·  Python WiFi Example · ...·  1 周前    · 
痴情的啄木鸟  ·  Q & A / PostgreSQL / ...·  昨天    · 
有胆有识的开心果  ·  白杺瓒_百度百科·  1 月前    · 
酷酷的足球  ·  宝沃注销生产资质 ...·  1 年前    · 
成熟的春卷  ·  丹尼尔席尔瓦 - 京东·  1 年前    · 
高兴的四季豆  ·  Resize - Tailwind CSS·  1 年前    · 
开朗的风衣  ·  Troubleshooting AWS ...·  1 年前    · 

ProFTPD 1.3.3d on SUSE Linux Enterprise Server 10.1 32bit, Kernel 2.6.16.46-0.12-default (config file attached)
ProFTPD 1.3.3d on OpenSUSE 64bit Linux 2.6.34.8-0.2-desktop
Java 1.5

I have a problem with the FTPClient connecting to a ProFTPD server.

If the server uses the configuration option "TLSProtocol TLSv1", I
cannot connect to it at all. I recieve the following error message:

  • javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
  • On the server side I see in the log:
    unable to accept TLS connection: protocol error:

  • (1) error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert
    certificate unknown
  • TLS/TLS-C negotiation failed on control channel
  • If the server uses the configuration option "TLSProtocol SSLv23", I
    can connect to it but I cant transfer any files. In the server log I

  • starting TLS negotiation on data connection
  • TLSv1/SSLv3 renegotiation accepted, using cipher RC4-MD5 (128 bits)
  • client did not reuse SSL session, rejecting data connection (see
    TLSOption NoSessionReuseRequired)
  • unable to open data connection: TLS negotiation failed
  • If I add the NoSessionReuseRequired parameter to the ProFTPD config
    everything works fine.

    Here is my code:
    FTPClient ftpClient = new FTPClient();
    ftpClient = new FTPSClient("TLS");

    // this throws an exception with TLSProtocol TLSv1
    ftpClient.connect(host, port);

    int reply = ftpClient.getReplyCode();
    if (!FTPReply.isPositiveCompletion(reply))

    ftpClient.disconnect(); log.error("The FTP Server did not return a positive completion reply!"); throw new FtpTransferException(ECCUtils.ERROR_FTP_CONNECTION);

    boolean loginSuccessful = ftpClient.login(userName, password);
    if (!loginSuccessful)

    log.error("Login to the FTP Server failed! The credentials are not valid."); throw new FtpTransferException(ECCUtils.ERROR_FTP_LOGIN);

    ftpClient.execPBSZ(0);
    ftpClient.execPROT("P");

    boolean success = ftpClient.storeFile(fileName, fis);
    if (!success)

    // this is false if "NoSessionReuseRequired" is not set

    Now my question is if it is generally possible to connect to a server
    with "TLSProtocol TLSv1" or "TLSProtocol SSLv23" without the
    "NoSessionReuseRequired" parameter? Could someone provide a piece of
    example code for this?

    Attachments

    1. BCFTPSClient.java
      35 kB
      Bogdan Drozdowski
    2. ftpes.jpg
      16 kB
      Michael Voigt
    3. FTPSClientWithTLSResumption.zip
      15 kB
      Erick Lichtas
    4. proftpd.conf
      3 kB
      Michael Voigt
    5. PTFTPSClient.java
      21 kB
      Bogdan Drozdowski

    Issue Links