CentOS FTP Server SSL证书配置指南
导读:CentOS FTP Server SSL证书配置指南 一 准备与证书获取 安装 vsftpd 与 OpenSSL(以 CentOS 7/8 为例):sudo yum install -y vsftpd openssl。 证书获取方式二选...
CentOS FTP Server SSL证书配置指南
一 准备与证书获取
- 安装 vsftpd 与 OpenSSL(以 CentOS 7/8 为例):sudo yum install -y vsftpd openssl。
- 证书获取方式二选一:
- 自签名证书(测试/内网):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
-keyout /etc/pki/tls/private/vsftpd.pem
-out /etc/pki/tls/certs/vsftpd.pem
提示:自签名证书在生产环境不被客户端默认信任。 - 受信任 CA/Let’s Encrypt 证书(生产推荐):
- 使用 Certbot 获取证书(示例):sudo certbot certonly --standalone -d yourdomain.com
- 证书路径通常为:/etc/letsencrypt/live/yourdomain.com/fullchain.pem(证书链)与 /etc/letsencrypt/live/yourdomain.com/privkey.pem(私钥)。
- 自签名证书(测试/内网):
二 配置 vsftpd 启用 SSL/TLS
- 编辑配置文件:sudo vi /etc/vsftpd/vsftpd.conf,建议启用以下关键项(按你的证书路径调整):
- 监听与基础:listen=YES;如仅启用 SSL 也可使用 listen_ssl=YES(与 ssl_enable 二选一或同时开启视版本而定)。
- SSL 开关与协议:ssl_enable=YES;allow_anon_ssl=NO;force_local_data_ssl=YES;force_local_logins_ssl=YES。
- 协议与套件:ssl_tlsv1=YES;ssl_sslv2=NO;ssl_sslv3=NO;建议添加 ssl_ciphers=HIGH。
- 证书与私钥(示例为合并 PEM;若分开请分别指定 rsa_cert_file 与 rsa_private_key_file):
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
rsa_private_key_file=/etc/pki/tls/private/vsftpd.pem
如使用 Let’s Encrypt:
rsa_cert_file=/etc/letsencrypt/live/yourdomain.com/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/yourdomain.com/privkey.pem
- 可选安全项:anonymous_enable=NO;local_enable=YES;write_enable=YES;chroot_local_user=YES;secure_chroot_dir=/var/run/vsftpd/empty。
- 保存后重启服务:sudo systemctl restart vsftpd。
三 防火墙与被动模式端口
- firewalld 放行:
- 推荐直接放行 FTP 服务:sudo firewall-cmd --permanent --add-service=ftp & & sudo firewall-cmd --reload。
- 若需显式放行端口:sudo firewall-cmd --permanent --add-port=21/tcp;数据端口范围(被动模式)请与 vsftpd 的 pasv_min_port/pasv_max_port 一致后放行,例如:
sudo firewall-cmd --permanent --add-port=10090-10100/tcp & & sudo firewall-cmd --reload。
- 说明:主动模式由服务器发起数据连接(常用端口 20/tcp),被动模式由客户端发起,需要开放一段高位端口范围。
四 客户端连接与验证
- 使用支持 SSL/TLS 的客户端(如 FileZilla)连接:协议选择 FTP over SSL/TLS(显式,AUTH TLS) 或 FTPS(隐式);连接时确认出现锁形图标/加密指示。
- 命令行验证(显式 SSL):
- lftp:lftp -u 用户名,密码 yourdomain.com -e “set ftp:ssl-force true; set ftp:ssl-protect-data true; ls; quit”
- openssl s_client:openssl s_client -connect yourdomain.com:21 -starttls ftp
- 生产建议:优先使用受信任 CA 证书;确保服务器与客户端均支持 TLS 1.2+;自签名证书仅用于测试。
五 常见问题与排查
- 证书权限:私钥与证书建议权限为 600,例如:
sudo chmod 600 /etc/pki/tls/private/vsftpd.pem
sudo chmod 600 /etc/pki/tls/certs/vsftpd.pem - SELinux:如启用 SELinux,可能需要调整策略以允许 vsftpd 使用 SSL/访问证书文件(视系统策略与版本而定)。
- 协议与套件:禁用 SSLv2/SSLv3,仅启用 TLSv1.2+ 与高强度套件,避免 POODLE/RC4 等风险。
- 被动模式问题:确认 pasv_address、pasv_min_port、pasv_max_port 配置与防火墙一致;云服务器需确保安全组同样放行。
- 服务状态与日志:使用 sudo systemctl status vsftpd 查看状态;日志路径通常为 /var/log/vsftpd.log,用于定位握手失败、证书不匹配等问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS FTP Server SSL证书配置指南
本文地址: https://pptw.com/jishu/747983.html
