Как избежать ошибки проверки сертификата 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" 

исправил проблему для меня

Другие вопросы по тегам