Ubuntu 20.04下lftp无法信任Let's Encrypt证书(服务器配置正常)
Ubuntu 20.04下lftp无法信任Let's Encrypt证书(服务器配置正常)
我之前也碰到过类似的头疼情况——明明用openssl验证证书完全没问题,但lftp就是死咬着说证书不被信任。结合你给出的详细信息(服务器证书链完整、openssl不管是直连443还是FTP StartTLS都验证通过),给你几个实用的排查和解决方向:
1. 强制指定lftp使用兼容的TLS版本
Ubuntu 20.04自带的lftp版本可能默认的TLS版本范围和服务器不太匹配,你可以尝试强制让它使用服务器支持的TLSv1.2或TLSv1.3:
lftp -c 'set ssl:ca-file "/etc/ssl/certs/ca-certificates.crt"; set ssl:tls-version TLSv1.2 TLSv1.3; connect server2.obble.com.au; ls'
如果测试有效,你可以把这个配置写到~/.lftp/rc文件里永久生效:
echo 'set ssl:tls-version TLSv1.2 TLSv1.3' >> ~/.lftp/rc
2. 刷新系统根证书缓存
虽然openssl验证正常,但有时候lftp可能没正确加载最新的根证书,你可以手动刷新系统证书缓存:
sudo update-ca-certificates --fresh
执行完后再重新尝试lftp连接,看看问题是否解决。
3. 排查lftp的证书验证配置
临时关闭证书验证测试(仅用于排查,不要长期开启,存在安全风险):
lftp -c 'set ssl:verify-certificate no; connect server2.obble.com.au; ls'
如果这个命令能成功执行,说明问题确实出在证书验证环节。你可以再检查一下系统根证书文件的权限,确保lftp运行的用户有读取权限:
ls -l /etc/ssl/certs/ca-certificates.crt
正常权限应该是-rw-r--r--,如果权限不对,用chmod 644 /etc/ssl/certs/ca-certificates.crt修正。
4. 开启lftp调试模式找细节
如果上面的方法都不行,开启lftp的调试日志,看看具体是验证过程中哪一步出了问题:
lftp -d -c 'set ssl:ca-file "/etc/ssl/certs/ca-certificates.crt"; connect server2.obble.com.au; ls'
日志里会输出详细的SSL握手和证书验证过程,你可以从里面找到具体的错误原因(不过从你的openssl输出看,证书链是完整的,大概率不是缺少中间证书的问题)。
备注:内容来源于stack exchange,提问作者Tankman六四
相关产品推荐
相关产品推荐

