配置SSL证书时,产生vsftpd服务器错误的原因是什么?

问题描述

我的目标是在Ubuntu 20.04上创建一个外部ftp服务器。

我的问题: 当我配置SSL证书时,出现(code = exited,Staus = 2 / INVALID ARGUMENT)错误错误日志并不精确,我至少想知道如何获取有关产生错误代码的非常详细的报告。

运行命令时,我的终端显示以下内容

sudo systemctl restart vsftpd.service
sudo systemctl tatus vsftpd. status

结果:

vsftpd.service - vsftpd FTP server
 Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
 Active: Failed (Result: exit-code) since Sat 2020-10-10 20:12:07 AST; 12s ago
Process: 36977 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited,status=0/SUCCESS)
Process: 36987 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited,status=2)

当我使用以下方法浏览日志时:

journal ctl -xn

启动作业已成功执行。但是,它紧随消息关闭

The job identifier is 13036.
Oct 10 20:15:13 username-Aspire-A315-51 sudo[37104]: pam_unix(sudo:session): session closed
Oct 10 20:15:13 username-Aspire-A315-51 systemd[1]: vsftpd.service: 
Main process exited,code=exited,status=2/INVALIDARGUMENT
Subject: Unit process exited

我的vsfptd.conf如何设置?

pam_service_name=vsftpd
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=11000

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1_1=YES
ssl_tlsv1_2=NO
ssl_sslv3=NO
require_ssl_reuse=YES
ssl_ciphers=HIGH
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key

使用SSL_enable = NO配置服务器并且认的rsa_cert和rsa_key_files如下所示,服务器可以工作:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

如果对如何生成SSL证书和密钥有任何疑问。这演示了所使用教程中的代码

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt

我已经多次创建和重新创建SSL证书。我还注释掉了IPv6_enable = YES。

我从以下位置看到了一些注释代码的建议:

/etc/pam.d/vsftpd

这没有效果

我愿意接受更多建议或帮助。已经几个小时了,日志详细信息的匮乏使得很难对解决方案做出很好的猜测。

解决方法

我已通过 sudo chown root:root /etc/vsftpd.conf 将 /etc/vsftpd.conf 的权限重置为 root:root 现在通过 sudo systemctl restart vsftpd.service 启动 vsftpd 服务器并手动运行它通过 sudo /usr/bin/vsftpd。