使用数字证书或私钥对FTP服务器进行FTPSClient身份验证

时间:2009-09-14 19:44:47

标签: java apache-commons ftps

我有一个Java应用程序的工作原型,它使用Apache Commons Net FTPSClient通过SSL连接到FileZilla服务器(端口990用于它的价值)。

没问题。问题是,应用程序当前正以用户名和密码的形式维护FTP用户的凭据。

是否可以通过提供客户端证书/公钥来执行 FTP用户的身份验证(如在FTP登录中,而不仅仅是SSL协商/验证)?

我知道我可以用SCP或SFTP做到这一点,因为SSH服务器处理的很好。如果这是正确的解决方案那么就是这样,但我不想放弃FTPS,直到我明白。

所以问题有两个部分:

a)是否有支持SSL(FTPS)和客户端身份验证/通过证书登录的FTP服务器的实现?

b)如何获得org.apache.commons.net.ftp.FTPSClient来做到这一点?

1 个答案:

答案 0 :(得分:1)

a)是的,许多服务器通过证书支持客户端身份验证。 Windows上的CompleteFTP是一个,Unix上的ProFTPD是另一个。需要注意的一点是,端口990通常与隐式模式FTPS相关联,不推荐使用。

b)不确定FTPSClient,但在edtFTPj/PRO中很容易做到。有关方法,请参阅this link