Frage Wie vermeide ich LFTP Certificate Verification Fehler?


Ich versuche mein zu bekommen Pelikan Blog Arbeiten. Es verwendet lftp, um das eigentliche Blog auf seinen Server zu übertragen, aber ich bekomme immer einen Fehler:

mirror: Fatal error: Certificate verification: subjectAltName does not match ‘blogname.com’

Ich denke, dass lftp das SSL überprüft und das schnelle Setup von Pelican nur vergessen hat, dass ich SSL auf meinem FTP nicht habe.


Dies ist der Code in Pelicans Makefile:

ftp_upload: $(OUTPUTDIR)/index.html
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

was rendert im Terminal als:

    lftp ftp://username@blogname.com -e "mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"

Was ich bisher geschafft habe, ist, die SSL-Prüfung zu verweigern, indem ich das Makefile zu:

lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no" "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

Aufgrund meiner falschen Implementierung werde ich richtig eingeloggt (lftp username@myblog.com:~>) aber die Ein-Zeilen-Funktion funktioniert nicht mehr und ich muss den Mirror-Befehl von Hand eingeben:

mirror -R /Volumes/HD/Users/me/Test/output/ /myblog_directory

Dies funktioniert ohne Fehler und Timeout. Die Frage ist, wie man das mit einem Liner macht.


Außerdem habe ich versucht:

  • set ssl:verify-certificate/ftp.myblog.com no
  • Dieser Trick Deaktivieren der Zertifikatsprüfung in lftp:

    $ cat ~ / .lftp / rc setze ssl: verify-certificate no

Es scheint jedoch, dass es keinen Ordner "rc" in meinem lftp-Verzeichnis gibt - diese Eingabeaufforderung hat also keine Chance zu arbeiten.


37
2017-07-27 20:56


Ursprung


~/.lftprc  ist eine Datei - Mausy5043


Antworten:


Von dem Manpage:

-c Befehle
  Führe die angegebenen Befehle aus und beende. Befehle können mit einem Semikolon getrennt werden (;), UND (&&) oder oder (||). Denken Sie daran, das Befehlsargument in der Shell korrekt anzugeben. Diese Option muss alleine ohne andere Argumente verwendet werden.

Daher möchten Sie die Befehle als einzelnes Argument angeben, das durch Semikolons getrennt ist:

lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

Sie können das tatsächlich weglassen quit Befehl und verwenden -c anstatt -e.


34
2017-07-27 21:00



Das ist großartig. Danke vielmals. Ich hatte gehofft, dass jemand, der erfahrener ist als ich, mein Versagen sofort erkennen würde (- ich habe auch versucht, deinen Vorschlag zu unterlassen - aber das hat bei mir nicht funktioniert. Ich bin trotzdem glücklich). - pattulus


Ich hatte ein ähnliches Problem, obwohl mein lftp ssl-Unterstützung kompiliert hat (Fedora RPM). ssl:verify-certificate false hat den Trick für mich gemacht.


29
2017-11-29 22:07



Basierend darauf, Putten set ssl:verify-certificate false in meinem ~/.lftprc löste das Problem für mich. - Nicolas Raoul
... obwohl das die Verwendung von SSL vereitelt, akzeptiert Ihr lftp nun glücklicherweise jedes Zertifikat, das es präsentiert, und macht Sie anfällig für M2M-Angriffe. - spectras
Wenn Zertifikate nicht ordnungsgemäß validiert werden, liegt dies wahrscheinlich daran, dass lftp die Zertifizierungsstellenzertifikate Ihres Systems nicht findet. Sehen diese Antwort für eine Reparatur. - ingomueller.net


echo "set ssl:verify-certificate no" >> ~/.lftp/rc

löst das Problem, wenn das Zertifikat nicht überprüft werden soll


14
2017-10-06 10:20



Dies verhindert weiterhin die Überprüfung von SSL-Zertifikaten und dies macht Man-in-the-Middle-Angriffe möglich. Für eine bessere Lösung, siehe diese Antwort. - ingomueller.net
besser nur ausführen set ssl:verify-certificate no in lftp shell, um temporär für die aktuelle Sitzung zu deaktivieren, als immer zu deaktivieren. Noch +1 für die Lösung. - akostadinov


ssl:verfy-certificate false funktionierte nicht für mich, ich bekam einen Timeout-Fehler, wenn "Datenverbindung herstellen".

ich folgte diese Anweisung durch Hinzufügen set ftp:ssl-allow false zu meinem ~/.lftprc Datei.


7
2018-02-04 09:08



Hast du es richtig buchstabiert, als du den Befehl ausgeführt hast? ssl: Verify-Zertifikat falsch - Malcolm Murdoch


Ich war auch konfrontiert mit ähnlichen Art von SSL-Zertifikat Verifikationsfehler. Das Einstellen des Bestätigungszertifikats auf "Nein" funktionierte für mich.

Beispiel:

lftp -c 'set ftps: initial-prot ""; set ftp: ssl-force true; set ftp: ssl-protect-data true; setze ssl: verify-certificate no; Öffnen -u Usename, Passwort 208.82.204.46; Setze Uploadfilename; '


4
2017-07-22 17:28





Außerdem habe ich versucht:

  • setze ssl: verify-certificate / ftp.myblog.com nein
  • Diese Trick, um die Zertifikatsprüfung in lftp zu deaktivieren:

$ cat ~ / .lftp / rc set ssl: verify-Zertifikat-Nr

Versuchen Sie es mit set ftp:ssl-allow no; es hat wie ein Zauber für mich funktioniert.


4
2017-08-26 20:20



Dies ist die beste Wahl. Die globale Einstellung ist eine schlechte Wahl, da es sinnvoll ist, die Zertifikatsprüfung zu verwenden, wenn dies möglich ist, und indem Sie die globale Option festlegen, wird sie niemals versuchen, das Zertifikat zu überprüfen. Sie können eine Skriptdatei verwenden lftp -f <script> und platzieren Sie diesen Befehl vor dem Öffnen-Befehl. - kmcguire
set ssl:verify-certificate no ist besser, denke ich, weil die Transaktion gesichert bleibt. set ftp:ssl-allow no wird Klartext kommunizieren - michalzuber


Ich habe Manpages gelesen und eine Lösung gefunden. Erstelle Datei

~/.lftp/rc

und füge dort die nächste Zeile hinzu:

set ssl:check-hostname false;

3
2018-03-06 09:54