Сертификат доверенного сервера с 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:
- получить сертификат хоста с
openssl s_client -connect <ftp_hostname>:21 -starttls ftp
, в начале результата я получил что-то вроде - скопируй это
-----BEGIN CERTIFICATE----- MIIEQzCCAyu.....XjMO -----END CERTIFICATE-----
в/etc/ssl/certs/ca-certificates.crt
- В конфигурации lftp укажите этот файл сертификата, добавив его в
/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"
Единственное решение, которое прошло год, по-прежнему — отключить 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