500 OOPS:SSL:无法加载 RSA 私钥 vsftpd

use*_*422 6 ssl certificate ftp debian-wheezy vsftpd

我正在 debian 7.3 上配置 vsfptd,我正在尝试使用 ssl。我使用以下命令生成证书:

openssl req -x509 -nodes -days 1925 -newkey rsa:2048 -keyout /etc/vsftpd/private/vsftpd2.key -out /etc/vsftpd/certificado/vsfptd3.pem
Run Code Online (Sandbox Code Playgroud)

我的 vsftpd.conf 是这样的:

listen=YES

anonymous_enable=YES

local_enable=YES

write_enable=YES

#anon_upload_enable=YES

anon_mkdir_write_enable=YES

dirmessage_enable=YES

use_localtime=YES

xferlog_enable=YES

connect_from_port_20=NO

#chown_uploads=YES
#chown_username=whoever
#
chroot_local_user=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp-ssl
rsa_cert_file=/etc/vsftpd/certificado/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/private/vsftpd2.key
anon_root=/srv/ftp/anonimo
chown_upload_mode=757
anon_upload_enable=YES
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
listen_port=990
ssl_ciphers=HIGH
require_ssl_reuse=NO
Run Code Online (Sandbox Code Playgroud)

但每次尝试启动 vsftpd 时,都会收到以下错误消息:

500 OOPS:SSL:无法加载 RSA 私钥

我检查了权限配置是否正确,我不知道该怎么做才能解决这个问题。请问有什么帮助吗?

Cam*_*err 3

我今天在 NetScaler(基于 BSD 的网络设备,其 openssl 版本比我创建密钥的版本旧)上遇到了类似的问题,尽管 vsftpd 没有,我可以说 mysql 也遇到了这个问题。

您的私钥格式可能与预期的格式不同。请尝试以下操作:

mv /etc/vsftpd/private/vsftpd2.key{,.old}
openssl rsa -in /etc/vsftpd/private/vsftpd2.key.old -out /etc/vsftpd/private/vsftpd2.key
diff /etc/vsftpd/private/vsftpd2.key{.old,}
Run Code Online (Sandbox Code Playgroud)

您可能会发现第一行和最后一行明显不同(例如,BEGIN RSA PRIVATE KEY 可能会更改为 BEGIN RSA KEY 或类似的内容)。

其他类似的事情要检查(对于其他软件)

  • 您的私钥文件中是否有本地行结尾?
  • 您是否需要删除尾随的换行符?

另一个常见的错误(也许很适合你)是 vsftpd 启动后可能会更改用户;有些软件会在发生这种情况后读取密钥(例如mysql),而其他软件会在发生这种情况之前读取它(例如httpd)。如果你想真正深入研究的话,Strace 可以提供非常丰富的信息。