作者:西北农林科技大学 卞一帆
类似于 HTTP 和 HTTPS ,建立在 TLS 上的应用层传输提供了更高的安全性,可以避免用户的凭据被通过窃听的方式获得,也可保证文件传输的安全性。
- Linux 服务器( CentOS 和 Debian 系均可,本例中使用 CentOS 6.9 )
- 安装 ProFTPd (本例中使用编译安装,参考官方文档)
本例选择在 proftpd.conf
中配置一个 VirtualHost 。如果需要配置到全局,只需要将 TLS 相关指令放到全局配置里。用方括号包括的内容需要根据实际情况修改。
<VirtualHost [Your Server IP]>
ServerName [Your Server Name]
DefaultRoot [Path To FTP Root]
ExtendedLog [Path to extended log]
TransferLog [Path to transfer log]
UseEncoding on
TLSEngine on
TLSLog [Path to TLS log]
TLSProtocol TLSv1.1 TLSv1.2
TLSRequired off
TLSRSACertificateFile [Path to certificate]
TLSRSACertificateKeyFile [Path to private key]
TLSVerifyClient off
TLSRenegotiate none
# Your own configuration goes here
</VirtualHost>
其中,FTPS 使用的证书和 nginx 配置 HTTPS 的证书可以是一样的。Common Name 字段应为用户连接 FTP 服务器时输入的主机名(建议域名)。 在实际测试中,FileZilla 会在初次连接时将证书信息显示给用户,让用户选择是否信任此证书。