Ich versuche mein Pelican Blog zum Laufen zu bringen. Es verwendet LFTP, um das eigentliche Blog auf einen Server zu übertragen, aber ich erhalte immer eine Fehlermeldung:
mirror: Fatal error: Certificate verification: subjectAltName does not match ‘blogname.com’
Ich denke, LFTP überprüft SSL und die schnelle Einrichtung von Pelican hat nur vergessen, dass ich kein SSL auf meinem FTP 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 im Terminal wiedergegeben wird als:
lftp ftp://[email protected] -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 ändere in:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no" "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
Aufgrund meiner fehlerhaften Implementierung werde ich korrekt angemeldet ( lftp [email protected]:~>
), aber die Einzeilenfunktion funktioniert nicht mehr und ich muss den Spiegelbefehl manuell 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 Einzeiler macht.
Außerdem habe ich versucht:
set ssl:verify-certificate/ftp.myblog.com no
Dieser Trick , um die Zertifikatüberprüfung in lftp zu deaktivieren:
$ cat ~ / .lftp / rc set ssl: Bestätigungszertifikat-Nr
Es scheint jedoch, dass sich kein "rc" -Ordner in meinem LFTP-Verzeichnis befindet - daher hat diese Eingabeaufforderung keine Chance zu funktionieren.
quelle
~/.lftprc
ist eine DateiAntworten:
Aus der Manpage :
Sie möchten also die Befehle als ein einzelnes Argument, durch Semikolons getrennt, angeben:
Sie können den
quit
Befehl auch weglassen und-c
stattdessen verwenden-e
.quelle
Ich hatte ein ähnliches Problem, obwohl mein LFTP SSL-Unterstützung in (Fedora RPM) kompiliert hat.
ssl:verify-certificate false
hat den Trick für mich getan.quelle
set ssl:verify-certificate false
ich~/.lftprc
das Problem für mich.echo "set ssl:verify-certificate no" >> ~/.lftp/rc
wird das Problem lösen, wenn das Zertifikat nicht überprüft werden soll
quelle
set ssl:verify-certificate no
in der LFTP-Shell auszuführen , um temporär für die aktuelle Sitzung zu deaktivieren, als immer zu deaktivieren. Noch +1 für die Lösung.ssl:verfy-certificate false
hat bei mir nicht funktioniert, beim "Herstellen einer Datenverbindung" trat ein Timeout-Fehler auf.Ich folgte diesen Anweisungen, indem ich
set ftp:ssl-allow false
zu meiner~/.lftprc
Datei hinzufügte .quelle
Versuchen Sie es mit
set ftp:ssl-allow no
; es wirkte wie ein Zauber für mich.quelle
lftp -f <script>
und diesen Befehl vor dem Befehl open einfügen.set ssl:verify-certificate no
ist meiner meinung nach besser, da die transaktion gesichert bleibt.set ftp:ssl-allow no
wird Klartext kommunizierenIch war auch mit einer ähnlichen Art von SSL-Zertifikat-Überprüfungsfehler konfrontiert. Das Setzen des Verifizierungszertifikats auf "Nein" hat bei mir funktioniert.
Beispiel:
lftp -c 'setze ftps: initial-prot ""; set ftp: ssl-force true; set ftp: ssl-protect-data true; setze ssl: verify-certificate no; Öffnen Sie -u Benutzername, Kennwort 208.82.204.46; Geben Sie den Upload-Dateinamen ein. '
quelle
Ich habe Manpages gelesen und eine Lösung gefunden. Erstelle Datei
und füge dort die nächste Zeile hinzu:
quelle
Benötigen Sie den Befehl lftp:
set ftp:ssl-allow no;
Sie können den Befehl ausführen, nachdem Sie Folgendes ausgewählt haben:
oder speichern Sie den Befehl in
~/.lftprc
.quelle
behebt das Problem für mich
quelle