lftp,让我们加密和 ca 证书

lftp,让我们加密和 ca 证书

Ubuntu 20.04

我使用 lftp 连接到服务器(ftp.domain.xxx)。

我收到“证书验证:无法获取本地颁发者证书”。

读完这个答案 https://stackoverflow.com/a/44095714/3206025 我补充道

set ssl:ca-file "/etc/ssl/certs/ca-certificates.crt

~/.lftp/rc启动 lftp 时,都要确保一切正常。

但问题依然发生。

所以我认为它/etc/ssl/certs/ca-certificates.crt不包含证书/不足以工作。

我认为该证书是通过真正的加密机制生成的。

Ubuntu 是否能够识别 let's encrypte 证书(在 Firefox 之外)。

我该如何解决我的问题?

答案1

问题不是由客户端的错误设置引起的,而是由服务器的错误设置引起的。服务器仅提供叶证书,而不提供创建本地根 CA 信任路径所需的链证书 - 请参阅SSL 证书框架 101:浏览器实际上如何验证给定服务器证书的有效性?更多信息(该帖子涉及浏览器,但对于 FTP 客户端也是一样的)。

可以通过以下方式确定错误的设置openssl s_client

$ openssl s_client -connect lautre.net:21 -starttls ftp
...
Certificate chain
 0 s:/CN=lautre.net
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
...
    Verify return code: 21 (unable to verify the first certificate)

从这里可以看出,服务器仅发送叶证书。正确的设置应该是这样的:

$ openssl s_client -connect some-other-server
...
Certificate chain
 0 s:/CN=some-other-server
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
 ...
    Verify return code: 0 (ok)

这里提供了预期的链证书,Let's Encrypt Authority X3以便可以针对本地根 CA 创建信任链DST Root CA X3

相关内容