我试图让我的鹈鹕博客工作。 它使用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"
在terminal呈现为:
lftp ftp://[email protected] -e "mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"
我到目前为止pipe理的是,通过将Makefile更改为:拒绝SSL检查。
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no" "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
由于我的错误实现,我正确地login了( lftp [email protected]:~>
),但是一行function不起作用,我必须手动input镜像命令:
mirror -R /Volumes/HD/Users/me/Test/output/ /myblog_directory
这工作没有错误和超时。 问题是如何用一个class轮来做到这一点。
另外我试过了:
set ssl:verify-certificate/ftp.myblog.com no
这个技巧来禁用lftp中的证书validation:
$ cat〜/ .lftp / rc set ssl:verify-certificate no
但是,我的lftp目录中似乎没有“rc”文件夹 – 所以这个提示没有机会工作。
从手册:
-c命令
执行给定的命令并退出。 命令可以用分号(;
),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
。
我有一个类似的问题,虽然我的lftp有(Fedora RPM)编译的ssl支持。 ssl:verify-certificate false
为我做了诡计。
echo "set ssl:verify-certificate no" >> ~/.lftp/rc
将解决问题,如果你不想要检查证书
ssl:verfy-certificate false
对我不起作用,当“build立数据连接”时,我正在收到一个超时错误。
我按照这些说明添加了set ftp:ssl-allow false
到我的~/.lftprc
文件。
我也遇到类似的SSL证书validation错误。 设置validation证书为“否”为我工作。
例:
lftp -c'set ftps:initial-prot“”; 设置ftp:ssl-force true; 设置ftp:ssl-protect-data true; 设置ssl:verify-certificate no; 打开-u用户名,密码208.82.204.46; 把上传文件名;“
另外我试过了:
- 设置ssl:verify-certificate / http://ftp.myblog.com没有
- 这个技巧来禁用lftp中的证书validation:
$ cat〜/ .lftp / rc set ssl:verify-certificate no
尝试使用set ftp:ssl-allow no
; 它对我来说就像一个魅力。
我已阅读手册页,并find解决办法。 创build文件
~/.lftp/rc
并添加下一行:
set ssl:check-hostname false;