我正在尝试让我的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”文件夹 - 因此此提示没有机会起作用。
从联机帮助页:
所以你想将命令指定为单个参数,用分号分隔:
您实际上可以省略
quit
命令并使用-c
而不是-e
.我有一个类似的问题,尽管我的 lftp 确实在 (Fedora RPM) 中编译了 ssl 支持。
ssl:verify-certificate false
为我做了把戏。没有证书检查
echo "set ssl:verify-certificate no" >> ~/.lftp/rc
如果您不想检查证书,将解决问题
带有证书的安全解决方案是
使用 lftp 一步一步对我有用的是:
openssl s_client -connect <ftp_hostname>:21 -starttls ftp
,在结果开始时我得到了类似的东西-----BEGIN CERTIFICATE----- MIIEQzCCAyu.....XjMO -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- MIIEQzCCAyu.....XjMO -----END CERTIFICATE-----
到/etc/ssl/certs/ca-certificates.crt
/etc/lftp.conf
系统范围set ssl:ca-file "/etc/ssl/certs/ca-certificates.crt"
lftp
,在我的情况下是lftp -u "${FTP_USER},${FTP_PWD}" ${FTP_HOST} -e "set net:timeout 10;mirror ${EXCLUDES} -R ${LOCAL_SOURCE_PATH} ${REMOTE_DEST_PATH} ; quit"
ssl:verfy-certificate false
对我不起作用,“建立数据连接”时出现超时错误。我按照这些说明添加
set ftp:ssl-allow false
到我的~/.lftprc
文件中。我也面临类似的 ssl 证书验证错误。将验证证书设置为“否”对我有用。
例子:
lftp -c 'set ftps:initial-prot ""; 设置 ftp:ssl-force 为真;设置 ftp:ssl-protect-data true; 设置 ssl:验证证书号;open -u 用户名,密码 208.82.204.46; 把上传文件名;'
尝试使用
set ftp:ssl-allow no
; 它对我来说就像一个魅力。我已阅读手册页并找到了解决方案。创建文件
并在下一行添加:
需要 lftp 命令:
set ftp:ssl-allow no;
您可以在选择后立即执行命令:
或将命令保存到
~/.lftprc
.为我解决了这个问题
使用这个解决了:
例子: