Как избежать ошибки проверки сертификата lftp?
Я пытаюсь заставить мой блог Пеликана работать. Он использует lftp для передачи реального блога на сервер, но я всегда получаю сообщение об ошибке:
mirror: Fatal error: Certificate verification: subjectAltName does not match ‘blogname.com’
Я думаю, что lftp проверяет SSL и быстрая настройка Pelican просто забыла включить, что у меня нет SSL на моем FTP.
Это код в 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"
До сих пор мне удавалось запретить проверку SSL, изменив Makefile на:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no" "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
Из-за неправильной реализации я вошел в систему правильно (lftp username@myblog.com:~>
) но функция с одной строкой больше не работает, и я должен ввести команду mirror вручную:
mirror -R /Volumes/HD/Users/me/Test/output/ /myblog_directory
Это работает без ошибок и тайм-аута. Вопрос в том, как это сделать с одним вкладышем.
Кроме того, я попробовал:
set ssl:verify-certificate/ftp.myblog.com no
Этот трюк, чтобы отключить проверку сертификата в lftp:
$ cat ~ /.lftp / rc set ssl: проверять-сертификат №
Тем не менее, похоже, что в моем каталоге lftp нет папки "rc" - поэтому у этой подсказки нет шансов работать.
8 ответов
-c команды
Выполните данные команды и выйдите. Команды могут быть разделены точкой с запятой (;
), А ТАКЖЕ (&&
) или или (||
). Не забудьте правильно указать аргумент команд в оболочке. Эта опция должна использоваться отдельно без других аргументов.
Таким образом, вы хотите указать команды как один аргумент, разделенный точкой с запятой:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
Вы можете опустить quit
командование и использование -c
вместо -e
,
У меня была похожая проблема, хотя на моем lftp скомпилирована поддержка ssl (Fedora RPM). ssl:verify-certificate false
сделал трюк для меня.
echo "set ssl:verify-certificate no" >> ~/.lftp/rc
решит проблему, если вы не хотите проверять сертификат
ssl:verfy-certificate false
у меня не получилось, я получаю ошибку тайм-аута при "подключении к данным".
Я следовал этим инструкциям, добавив set ftp:ssl-allow false
к моему ~/.lftprc
файл.
Я также столкнулся с подобной ошибкой проверки сертификата ssl. Установка проверки сертификата на "нет" работала для меня.
Пример:
lftp -c 'установить ftps:initial-prot ""; установите ftp: ssl-force true; установите ftp: ssl-protect-data true; set ssl: verify-сертификат №; open -u Usename, пароль 208.82.204.46; положить имя файла загрузки; '
Кроме того, я попробовал:
- установить ssl:verify-certificate/ftp.myblog.com нет
- Этот трюк, чтобы отключить проверку сертификата в lftp:
$ cat ~ /.lftp / rc set ssl: проверять-сертификат №
Попробуйте использовать set ftp:ssl-allow no
; это работало как очарование для меня.
Я прочитал справочные страницы и нашел решение. Создать файл
~/.lftp/rc
и добавьте туда следующую строку:
set ssl:check-hostname false;
Решено с помощью этого:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ssl:verify-certificate no; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
пример:
lftp ftp://username@blogname.com -e "set ssl:verify-certificate no; mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"
Нужна команда lftp: set ftp:ssl-allow no;
Вы можете выполнить команду только после выбора:
lftp www.yourdomain.com -u username,password -e "set ftp:ssl-allow no;"
или сохраните команду в ~/.lftprc
,
lftp -u username,password host -e "set ftp:ssl-allow no"
исправил проблему для меня