Ssl-Certificate
如何避免lftp證書驗證錯誤?
我正在嘗試讓我的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://username@blogname.com -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 username@myblog.com:~>
)但單行功能不再起作用,我必須手動輸入鏡像命令: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”文件夾 - 所以這個提示沒有機會工作。
從手冊頁:
-c commands
執行給定的命令並退出。命令可以用分號 (
;
)、AND (&&
) 或 OR (||
) 分隔。請記住在 shell 中正確引用 commands 參數。此選項必須單獨使用,不帶其他參數。因此,您希望將命令指定為單個參數,用分號分隔:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
您實際上可以省略
quit
命令並使用-c
而不是-e
.