Speichern Sie das Zertifikat zur Verwendung mit LFTP

10832
Greg C

Wie kann ich ein Zertifikat zur Verwendung mit LFTP speichern?

Das betreffende Zertifikat wird von lftp nicht akzeptiert, wenn es vom Server heruntergeladen wird. Ich habe es versucht

openssl s_client -connect :21 -showcerts

von So speichern Sie ein Remote-Server-SSL-Zertifikat lokal als Datei, dies wird jedoch zurückgegeben

CONNECTED(00000003) 3074045628:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:766:

no peer certificate available

Ich verbinde mich mit

lftp -p 21 -u

und erhalten

ls: Fatal error: Certificate verification: Not trusted

5

3 Antworten auf die Frage

8
marcwho

Ich denke, das Problem ist, dass der FTP-Server normales FTP verwendet, explizites SSL / TLS jedoch unterstützt. Um dem Protokoll zu folgen, muss der Client eine Verbindung zum FTP-Server herstellen und die Verschlüsselung über den Befehl AUTH aufrufen. (AUTH-Befehl wird in Klartext gesendet)

Um Ihre Frage zu beantworten, glaube ich nicht, dass es möglich ist, das Zertifikat vorzulegen. Es sei denn, Sie können den AUTH-Befehl irgendwie an den FTP-Server senden.

Bearbeiten: Um Zertifikate anzuzeigen, gehen Sie folgendermaßen vor:

openssl s_client -connect xxxx: 21 -starttls ftp

2
user35800

Sind Sie sicher, dass dieser Endpunkt mit SSL ordnungsgemäß gesichert ist? Aus der Fehlermeldung, die Sie anzeigen, scheint es, als würde der Server keine SSL bereitstellen. Auch der Port 21 wird meistens für plainftp verwendet, nicht für FTPs oder SFTP.

Das erhalte ich, wenn ich den Befehl auf einem einfachen FTP-Server ausführen

openssl s_client -connect xxx.yyy.zzz.www:21 -showcerts CONNECTED(00000003) 140165093090976:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:749: --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 7 bytes and written 225 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE 

Der LFTP-Fehler kann auf eine falsche Konfiguration von LFTP zurückzuführen sein, wenn Sie SSL benötigen. Sie können folgendes versuchen:

set ftp:ssl-force false 

Sie können aber auch eine Verbindung mit versuchen

set ssl:verify-certificate no 

Dies ist zwar nur für Tests und für Testkonten akzeptabel (um keine Berechtigungsnachweise zu verlieren).

2
ingomueller.net

Anscheinend ist lftp auf vielen Systemen nicht richtig konfiguriert, sodass Serverzertifikate nicht überprüft werden können. Möglicherweise ist dies die Ursache für Ihr Problem.

Das Internet enthält zahlreiche Vorschläge, um dies zu beheben, indem die Zertifikatsüberprüfung oder Verschlüsselung vollständig deaktiviert wird. Dies ist unsicher, da Man-in-the-Middle-Angriffe unbemerkt bleiben können.

Die bessere Lösung ist, die Zertifikatsüberprüfung richtig zu konfigurieren, was zum Glück einfach ist. Fügen Sie dazu die folgende Zeile hinzu /etc/lftp.conf(oder alternativ ~/.lftp/rc):

set ssl:ca-file "/etc/ssl/certs/ca-certificates.crt" 

ca-certificates.crtist eine Datei, die alle CA-Zertifikate des Systems enthält. Der oben verwendete Speicherort ist der von Ubuntu und kann je nach System variieren. Um die Datei zu generieren oder zu aktualisieren, führen Sie Folgendes aus update-ca-certificates:

sudo update-ca-certificates 

Wenn Ihr System nicht über diesen Befehl verfügt, können Sie ihn manuell wie folgt erstellen:

cat /etc/ssl/certs/*.pem | sudo tee /etc/ssl/certs/ca-certificates.crt > /dev/null