在设置 vsftpd 时,我们遇到一个问题,它没有为我们提供仅使用私钥和证书的基本 pem 证书容器的可信连接。
我们使用以下命令创建了 pem 文件。
cat somecert.com.crt >> somepem.pem
cat somecertkey.com.key >> somepem.pem
SSL 证书配置 vsftpd.conf
/etc/vsftpd/vsftpd.conf
ssl_enable=YES
ssl_tlsv1=YES
rsa_cert_file=/etc/httpd/ssl/somepem.pem
当在调试模式下使用 lftp 进行连接时,我发现我们给出的证书没有足够的信息来建立完整的授权链。以确保它是可信的。
lftp -d -u user:pass myserver.com
....
错误:证书验证:不受信任
**** 证书验证:不受信任
---- 关闭控制套接字
答案1
我需要获取完整的授权链并将其添加到 pem 证书容器中,感谢stackExchange这个问题有一些很好的解决方案。
回显连接 | openssl s_client -connect myserver.com:443 2>&1 | sed -ne'/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'> cert.pem
从此我们现在可以更新我们创建的证书以包含完整的授权链。
我们需要更新vsftpd 的配置
vim /etc/vsftpd/vsftpd.conf
ssl_enable=YES
ssl_tlsv1=YES
rsa_private_key_file=/etc/httpd/ssl/somepem.pem
rsa_cert_file=/etc/vsftpd/ssl/cert.pem
使用 lftp 测试
lftp -d -u 用户:通过 myserver.com
证书:C=US、ST=亚利桑那、L=斯科茨代尔、O=Starfield Technologies\, Inc.、OU=http://certificates.starfieldtech.com/repository,CN=Starfield安全认证 > 颁发机构,serialNumber=10688435
颁发者:C=US,O=Starfield Technologies\, Inc.,OU=Starfield Class 2 认证机构
正在检查:C=US,O=Starfield Technologies\, Inc.,OU=Starfield Class 2 认证机构
受信任
证书:C=US,O=Starfield Technologies\, Inc.,OU=Starfield Class 2 认证机构
颁发者:C=US,O=Starfield Technologies\, Inc.,OU=Starfield Class 2 认证机构
受信任
按照正确的顺序正确打包 pem 文件非常重要。
我如何从 CRT 文件创建自己的捆绑文件
登录您的 DigiCert 管理控制台并下载您的中间证书 (DigiCertCA.crt)、根证书 (TrustedRoot.crt) 和主要证书 (your_domain_name.crt)。打开文本编辑器 (例如写字板) 并按以下顺序将每个证书的整个正文粘贴到一个文本文件中:
- 主要证书 - your_domain_name.crt
- 中级证书 - DigiCertCA.crt
- 根证书 - TrustedRoot.crt
确保每个证书都包含开始和结束标签。结果应如下所示:
-----开始证书-----
(您的主要 SSL 证书:your_domain_name.crt)
-----结束证书-----
-----开始证书-----
(您的中级证书:DigiCertCA.crt)
-----结束证书-----
-----开始证书-----
(您的根证书:TrustedRoot.crt)
-----结束证书-----
将合并后的文件保存为 your_domain_name.pem。.pem 文件现在即可使用。
答案2
您始终可以将 ftp 客户端配置为忽略证书。这是不安全的,应避免。这样做风险自负。 http://anils-tips.blogspot.com/2011/05/lftp-fatal-error-certificate.html
lftp[电子邮件保护]:/directory
密码:
cd:致命错误:证书验证:不受信任
完全禁用 lftp 中的证书验证。
This is not a good idea if you are concerned about security
cat ~/.lftp/rc
设置 ssl:验证证书否
或者
如果您只想针对一个特定主机执行此操作,那么您也可以。
lftp -e“设置 ssl:验证证书编号”[电子邮件保护]:/目录