Сертификат доверенного сервера с lftp

При подключении к серверу с помощью lftp у меня возникает следующая проблема:

Certificate verification: Not trusted: no issuer was found (AA:AA:AA:[...]:AA:AA)

Что указывает по крайней мере на то, что проверка сертификата не удалась Я хотел бы внести этот список в белый список. Очевидно, что отключение проверки сертификата не вариант из-за проблем безопасности.

Вот что я уже пробовал:

  • Следуйте этому руководству, чтобы получить сертификаты с сервера и использовать их с set ssl:ca-file, Следуя этому руководству, у меня есть три сертификата. Я попробовал их все, затем соединил вместе, что ничего не изменило. Также пробовал с ssl:cert-file,
  • используя тот же метод, что и выше с openssl s_client -connect my.server.tld:21 -starttls ftp, который дает только один сертификат
  • установка ssl:ca-file в кафе системы
  • использование gnutls-cli прекрасно работает с опцией -s, так что сделайте выше openssl s_client команды.

Кажется, что сертификат подписан действительной цепью доверия, насколько эти команды сообщают.

Filezilla работает нормально, но отображает следующее предупреждение, которое может быть связано:

Сервер отправил несортированную цепочку сертификатов с нарушением спецификаций TLS

Я не контролирую сервер, поскольку сам не размещаю его, но приветствующий идентифицирует себя как Pure-FTPd.

Другие клиенты, которые не работали (отсутствие поддержки ftps или для конкретного сервера): ftp, ncftp, dolphin (KIO), curlftpfs, tnftp, firefox

3 ответа

Что у меня сработало шаг за шагом с lftp:

  1. получить сертификат хоста сopenssl s_client -connect <ftp_hostname>:21 -starttls ftp, в начале результата я получил что-то вроде
  2. скопируй это-----BEGIN CERTIFICATE----- MIIEQzCCAyu.....XjMO -----END CERTIFICATE----- в /etc/ssl/certs/ca-certificates.crt
  3. В конфигурации lftp укажите этот файл сертификата, добавив его в/etc/lftp.confдля всей системыset ssl:ca-file "/etc/ssl/certs/ca-certificates.crt"
  4. а затем выполните синхронизацию или что-то еще сlftpв моем случае это такlftp -u "${FTP_USER},${FTP_PWD}" ${FTP_HOST} -e "set net:timeout 10;mirror ${EXCLUDES} -R ${LOCAL_SOURCE_PATH} ${REMOTE_DEST_PATH} ; quit"

Единственное решение, которое прошло год, по-прежнему — отключить ssl:verify-certificate для определенных отпечатков сертификатов.

      set ssl:verify-certificate/{fingerprint1} no
set ssl:verify-certificate/{fingerprint2} no

См. закрытую проблему 214 lftp – https://github.com/lavv17/lftp/issues/214#issuecomment-197237482.

Решение заключалось в том, чтобы получить все сертификаты с помощью приведенной ниже команды и добавить их в файл сертификатов.

      openssl s_client -connect hg-gym.de:21 -starttls ftp -showcerts
Другие вопросы по тегам