AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 411970
Accepted
patrick
patrick
Asked: 2012-07-28 12:56:16 +0800 CST2012-07-28 12:56:16 +0800 CST 2012-07-28 12:56:16 +0800 CST

如何避免 lftp 证书验证错误?

  • 772

我正在尝试让我的Pelican 博客正常运行。它使用 lftp 将实际博客传输到一个服务器,但我总是得到一个错误:

mirror: Fatal error: Certificate verification: subjectAltName does not match ‘blogname.com’

我认为 lftp 正在检查 SSL,而 Pelican 的快速设置只是忘了包括我的 FTP 上没有 SSL。


这是 Pelican 的 Makefile 中的代码:

ftp_upload: $(OUTPUTDIR)/index.html
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

在终端中呈现为:

    lftp ftp://[email protected] -e "mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"

到目前为止我所管理的是,通过将 Makefile 更改为以下内容来拒绝 SSL 检查:

lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no" "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

由于我的不正确实施,我正确登录 ( lftp [email protected]:~>) 但单行功能不再起作用,我必须手动输入镜像命令:

mirror -R /Volumes/HD/Users/me/Test/output/ /myblog_directory

这工作没有错误和超时。问题是如何用一个班轮做到这一点。


另外我试过:

  • set ssl:verify-certificate/ftp.myblog.com no
  • 在 lftp 中禁用证书验证的技巧:

    $ cat ~/.lftp/rc set ssl:verify-certificate no

但是,我的 lftp 目录中似乎没有“rc”文件夹 - 因此此提示没有机会起作用。

ssl-certificate
  • 10 10 个回答
  • 172057 Views

10 个回答

  • Voted
  1. Best Answer
    mgorven
    2012-07-28T13:00:16+08:002012-07-28T13:00:16+08:00

    从联机帮助页:

    -c commands
    执行给定的命令并退出。命令可以用分号 ( ;)、AND ( &&) 或 OR ( ||) 分隔。请记住在 shell 中正确引用命令参数。此选项必须在没有其他参数的情况下单独使用。

    所以你想将命令指定为单个参数,用分号分隔:

    lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
    

    您实际上可以省略quit命令并使用-c而不是-e.

    • 55
  2. Dr. Kenneth Noisewater
    2012-11-30T14:07:51+08:002012-11-30T14:07:51+08:00

    我有一个类似的问题,尽管我的 lftp 确实在 (Fedora RPM) 中编译了 ssl 支持。 ssl:verify-certificate false为我做了把戏。

    • 50
  3. Philippe Gachoud
    2015-10-07T02:20:44+08:002015-10-07T02:20:44+08:00

    没有证书检查

    echo "set ssl:verify-certificate no" >> ~/.lftp/rc

    如果您不想检查证书,将解决问题

    带有证书的安全解决方案是

    使用 lftp 一步一步对我有用的是:

    1. 获得主机证书openssl s_client -connect <ftp_hostname>:21 -starttls ftp,在结果开始时我得到了类似的东西-----BEGIN CERTIFICATE----- MIIEQzCCAyu.....XjMO -----END CERTIFICATE-----
    2. 将其复制-----BEGIN CERTIFICATE----- MIIEQzCCAyu.....XjMO -----END CERTIFICATE----- 到 /etc/ssl/certs/ca-certificates.crt
    3. 进入lftp 配置参考此证书文件添加到/etc/lftp.conf系统范围set ssl:ca-file "/etc/ssl/certs/ca-certificates.crt"
    4. 然后做你的同步或其他什么lftp,在我的情况下是lftp -u "${FTP_USER},${FTP_PWD}" ${FTP_HOST} -e "set net:timeout 10;mirror ${EXCLUDES} -R ${LOCAL_SOURCE_PATH} ${REMOTE_DEST_PATH} ; quit"
    • 33
  4. desmillicious
    2014-02-05T01:08:26+08:002014-02-05T01:08:26+08:00

    ssl:verfy-certificate false对我不起作用,“建立数据连接”时出现超时错误。

    我按照这些说明添加set ftp:ssl-allow false到我的~/.lftprc文件中。

    • 9
  5. Pritam
    2015-07-23T09:28:45+08:002015-07-23T09:28:45+08:00

    我也面临类似的 ssl 证书验证错误。将验证证书设置为“否”对我有用。

    例子:

    lftp -c 'set ftps:initial-prot ""; 设置 ftp:ssl-force 为真;设置 ftp:ssl-protect-data true; 设置 ssl:验证证书号;open -u 用户名,密码 208.82.204.46; 把上传文件名;'

    • 7
  6. Lucas Farias
    2015-08-27T12:20:52+08:002015-08-27T12:20:52+08:00

    另外我试过:

    • 设置 ssl:verify-certificate/ftp.myblog.com 否
    • 在 lftp 中禁用证书验证的技巧:

    $ cat ~/.lftp/rc set ssl:verify-certificate no

    尝试使用set ftp:ssl-allow no; 它对我来说就像一个魅力。

    • 5
  7. andrey--k
    2015-03-07T01:54:43+08:002015-03-07T01:54:43+08:00

    我已阅读手册页并找到了解决方案。创建文件

    ~/.lftp/rc
    

    并在下一行添加:

    set ssl:check-hostname false;
    
    • 3
  8. Nick Tsai
    2018-04-01T09:14:38+08:002018-04-01T09:14:38+08:00

    需要 lftp 命令:set ftp:ssl-allow no;

    您可以在选择后立即执行命令:

    lftp www.yourdomain.com -u username,password -e "set ftp:ssl-allow no;"
    

    或将命令保存到~/.lftprc.

    • 1
  9. ri825170
    2019-11-04T03:53:35+08:002019-11-04T03:53:35+08:00
    lftp -u username,password host -e "set ftp:ssl-allow no" 
    

    为我解决了这个问题

    • 0
  10. user571560
    2020-04-25T06:29:28+08:002020-04-25T06:29:28+08:00

    使用这个解决了:

    lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ssl:verify-certificate no; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
    

    例子:

    lftp ftp://[email protected] -e "set ssl:verify-certificate no; mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"
    
    • 0

相关问题

  • RHEL/Apache ssl.conf 配置问题

  • IIS7 中的证书信任列表

  • SSL证书的区别?

  • 如何修复邮件服务器 SSL?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve