pat*_*ick 65 certificate ftp ssl-certificate verification
我正在努力让我的Pelican 博客正常运行。它使用 lftp 将实际博客传输到某个服务器,但我总是收到错误消息:
mirror: Fatal error: Certificate verification: subjectAltName does not match ‘blogname.com’
Run Code Online (Sandbox Code Playgroud)
我认为 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"
Run Code Online (Sandbox Code Playgroud)
在终端中呈现为:
lftp ftp://username@blogname.com -e "mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"
Run Code Online (Sandbox Code Playgroud)
到目前为止,我管理的是,通过将 Makefile 更改为以下内容来拒绝 SSL 检查:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no" "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
Run Code Online (Sandbox Code Playgroud)
由于我的错误实现,我正确登录 ( lftp username@myblog.com:~>) 但单行功能不再起作用,我必须手动输入镜像命令:
mirror -R /Volumes/HD/Users/me/Test/output/ /myblog_directory
Run Code Online (Sandbox Code Playgroud)
这没有错误和超时。问题是如何用单衬里做到这一点。
另外我试过:
set ssl:verify-certificate/ftp.myblog.com no$ cat ~/.lftp/rc set ssl:verify-certificate no
但是,我的 lftp 目录中似乎没有“rc”文件夹 - 所以这个提示没有机会起作用。
mgo*_*ven 51
从联机帮助页:
-c commands
执行给定的命令并退出。命令可以用分号 (;)、AND (&&) 或 OR (||)分隔。请记住在 shell 中正确引用命令参数。此选项必须单独使用,没有其他参数。
所以你想将命令指定为单个参数,用分号分隔:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
Run Code Online (Sandbox Code Playgroud)
实际上,你可以省略quit命令,并使用-c替代-e。
小智 49
我有一个类似的问题,尽管我的 lftp 确实在(Fedora RPM)中编译了 ssl 支持。 ssl:verify-certificate false帮我解决了这个问题。
Phi*_*oud 31
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"小智 8
我也面临类似的 ssl 证书验证错误。将验证证书设置为“否”对我有用。
例子:
lftp -c '设置 ftps:initial-prot ""; 设置 ftp:ssl-force true;设置 ftp:ssl-protect-data true; 设置 ssl:验证证书号;open -u 用户名,密码 208.82.204.46; 输入上传文件名;'
| 归档时间: |
|
| 查看次数: |
149631 次 |
| 最近记录: |