Bagaimana cara menghindari kesalahan verifikasi Sertifikat lftp?

46

Saya mencoba membuat blog Pelikan saya berfungsi. Ini menggunakan lftp untuk mentransfer blog yang sebenarnya ke server yang, tetapi saya selalu mendapatkan kesalahan:

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

Saya pikir lftp sedang memeriksa SSL dan setup cepat Pelican hanya lupa untuk memasukkan bahwa saya tidak memiliki SSL pada FTP saya.


Ini adalah kode di Makefile Pelican:

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

yang menjadikan terminal sebagai:

    lftp ftp://[email protected] -e "mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"

Apa yang saya kelola sejauh ini adalah, menolak pemeriksaan SSL dengan mengubah Makefile ke:

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

Karena implementasi yang salah, saya dapat login dengan benar ( lftp [email protected]:~>) tetapi fitur satu baris tidak berfungsi lagi dan saya harus memasukkan perintah mirror dengan tangan:

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

Ini berfungsi tanpa kesalahan dan batas waktu. Pertanyaannya adalah bagaimana melakukan ini dengan liner satu.


Selain itu saya mencoba:

  • set ssl:verify-certificate/ftp.myblog.com no
  • Trik ini untuk menonaktifkan verifikasi sertifikat di lftp:

    $ cat ~ / .lftp / rc set ssl: verifikasi-sertifikat no

Namun, sepertinya tidak ada folder "rc" di direktori lftp saya - jadi prompt ini tidak memiliki kesempatan untuk berfungsi.

patrick
sumber
1
~/.lftprc adalah sebuah file
Mausy5043

Jawaban:

42

Dari halaman manual :

Perintah -c
Menjalankan perintah yang diberikan dan keluar. Perintah dapat dipisahkan dengan tanda titik koma ( ;), AND ( &&) atau OR ( ||). Ingatlah untuk mengutip argumen perintah dengan benar di shell. Opsi ini harus digunakan sendiri tanpa argumen lain.

Jadi, Anda ingin menentukan perintah sebagai argumen tunggal, dipisahkan oleh titik koma:

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

Anda sebenarnya bisa menghilangkan quitperintah dan menggunakan -calih-alih -e.

Mgorven
sumber
Itu hebat. Terima kasih banyak. Saya berharap bahwa seseorang yang lebih berpengalaman daripada saya akan melihat kegagalan saya secara instan (- Saya juga mencoba saran -c Anda meninggalkan keluar, tetapi ini tidak berhasil bagi saya. Saya senang pula).
patrick
34

Saya memiliki masalah yang serupa, meskipun lftp saya memang memiliki dukungan ssl yang dikompilasi di (Fedora RPM). ssl:verify-certificate falsemelakukan trik untukku.

Kenneth Noisewater
sumber
11
Berdasarkan ini, menempatkan set ssl:verify-certificate falsesaya ~/.lftprcmemecahkan masalah bagi saya.
Nicolas Raoul
5
... meskipun itu mengalahkan titik menggunakan SSL lftp Anda sekarang dengan senang hati menerima sertifikat apa pun yang disajikan, membuat Anda rentan terhadap serangan M2M.
spektrum
1
Jika sertifikat tidak divalidasi dengan benar, kemungkinan penyebabnya adalah lftp tidak menemukan sertifikat CA sistem Anda. Lihat jawaban ini untuk perbaikan.
ingomueller.net
19

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

akan menyelesaikan masalah jika Anda tidak ingin sertifikat diperiksa

Philippe Gachoud
sumber
2
Ini masih menonaktifkan verifikasi sertifikat SSL dan ini memungkinkan serangan man-in-the-middle. Untuk perbaikan yang lebih baik, lihat jawaban ini .
ingomueller.net
3
lebih baik jalankan set ssl:verify-certificate nodi lftp shell untuk menonaktifkan sementara untuk sesi saat ini daripada menonaktifkan selalu. Masih memberi +1 untuk solusinya.
akostadinov
8

ssl:verfy-certificate false tidak berfungsi untuk saya, saya mendapatkan kesalahan batas waktu ketika "membuat koneksi data".

Saya mengikuti instruksi ini dengan menambahkan set ftp:ssl-allow falseke ~/.lftprcfile saya .

kasar
sumber
3
Apakah Anda mengejanya dengan benar saat menjalankan perintah? ssl: verifikasi-sertifikat salah
Malcolm Murdoch
5

Selain itu saya mencoba:

  • set ssl: verifikasi-sertifikat / ftp.myblog.com no
  • Trik ini untuk menonaktifkan verifikasi sertifikat di lftp:

$ cat ~ / .lftp / rc set ssl: verifikasi-sertifikat no

Coba gunakan set ftp:ssl-allow no; itu bekerja seperti pesona bagi saya.

Lucas Farias
sumber
1
Ini adalah pilihan yang paling tepat. Pengaturan global adalah pilihan yang buruk karena masuk akal untuk menggunakan verifikasi sertifikat bila memungkinkan dan dengan menetapkan opsi global itu tidak akan pernah mencoba memverifikasi sertifikat. Anda dapat menggunakan file skrip lftp -f <script>dan menempatkan perintah ini sebelum perintah terbuka.
kmcguire
set ssl:verify-certificate nolebih baik saya pikir karena transaksi tetap aman. set ftp:ssl-allow noakan mengomunikasikan plaintext
michalzuber
4

Saya juga menghadapi kesalahan verifikasi sertifikat ssl serupa. Pengaturan verifikasi-sertifikat untuk 'tidak' bekerja untuk saya.

Contoh:

lftp -c 'set ftps: initial-prot ""; set ftp: ssl-force true; set ftp: ssl-protect-data true; set ssl: verifikasi-sertifikat no; open -u Nama pengguna, Kata Sandi 208.82.204.46; masukkan namafile; '

Pritam
sumber
3

Saya telah membaca halaman manual dan menemukan solusinya. Buat file

~/.lftp/rc

dan tambahkan di sana baris berikutnya:

set ssl:check-hostname false;
andrey - k
sumber
1

Perlu perintah lftp: set ftp:ssl-allow no;

Anda dapat menjalankan perintah hanya setelah memilih:

lftp www.yourdomain.com -u username,password -e "set ftp:ssl-allow no;"

atau simpan perintah ke ~/.lftprc.

Nick Tsai
sumber
0
lftp -u username,password host -e "set ftp:ssl-allow no" 

memperbaiki masalah untuk saya

ri825170
sumber