LFTP Sertifika doğrulama hatası nasıl engellenir?


46

Pelican blogumu çalışır duruma getirmeye çalışıyorum. Asıl blogu sunucuya aktarmak için lftp kullanıyor, ancak her zaman hata alıyorum:

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

Sanırım lftp SSL’yi kontrol ediyor ve Pelican’ın hızlı kurulumu FTP’de SSL’imin olmadığını eklemeyi unuttu.


Pelican'ın Makefile'ındaki kod şudur:

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

terminalde şu şekilde işler:

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

Şu ana kadar yönettiğim, Makefile işlevini değiştirerek SSL denetimini reddetmek.

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

Yanlış uygulamam nedeniyle doğru giriş yaptım ( lftp username@myblog.com:~>) ancak tek satırlık özelliği artık çalışmıyor ve ayna komutuna elle girmem gerekiyor:

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

Bu bir hata ve zaman aşımı olmadan çalışır. Asıl soru, bunun tek bir astarla nasıl yapılacağıdır.


Ek olarak denedim:

  • set ssl:verify-certificate/ftp.myblog.com no
  • Bu numara , lftp’de sertifika doğrulamasını devre dışı bırakmak için:

    $ cat ~ / .lftp / rc seti ssl: doğrulama sertifikası no

Ancak, benim lftp dizinde "rc" klasörü yok gibi görünüyor - bu yüzden bu istemi çalışma şansı yok.


1
~/.lftprc bir dosya
Mausy5043

Yanıtlar:


42

Gönderen man :

-c komutları
Verilen komutları yürütün ve çıkın. Komutlar noktalı virgülle ( ;), AND ( &&) veya OR ( ||) ile ayrılabilir . Komutlar argümanını kabukta uygun şekilde alıntılamayı unutmayın Bu seçenek, diğer argümanlar olmadan tek başına kullanılmalıdır.

Böylece komutları noktalı virgüllerle ayırarak tek bir argüman olarak belirlemek istiyorsunuz:

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

quitKomutu gerçekten atlayıp -cyerine kullanabilirsiniz -e.


Bu harika. Bir ton teşekkürler. Benden daha deneyimli birisinin başarısızlığımı anında anlayacağını umuyordum (- Ben de sizin önerinizi bırakmayı denedim, ama bu benim için işe yaramadı. Yine de mutluyum).
Patrick,

34

Ben de benzer bir sorun yaşadım, ancak benim ftp'mde derlenmiş (Fedora RPM) ssl desteği var. ssl:verify-certificate falsehile benim için yaptı.


11
Buna dayanarak, set ssl:verify-certificate falsebenim ~/.lftprcsorunumu çözerek benim için sorunu çözdü.
Nicolas Raoul

5
… Bu SSL'yi kullanma noktasını yitirmesine rağmen, lftp'niz şimdi ne şekilde sertifika verilirse kabul edilir, sizi M2M saldırılarına karşı savunmasız yapar.
spektrum

1
Sertifikalar doğru şekilde doğrulanmadıysa, bunun olası bir nedeni, lftp'nin sisteminizin CA sertifikalarını bulamamasıdır. Düzeltme için bu cevaba bakınız .
ingomueller.net 21:17

19

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

Sertifikanın kontrol edilmesini istemiyorsanız sorunu çözecek


2
Bu hala SSL sertifikalarının doğrulanmasını engelliyor ve bu da ortadaki adam saldırılarını mümkün kılıyor. Daha iyi bir düzeltme için bu cevaba bakınız .
ingomueller.net 21:17

3
set ssl:verify-certificate noGeçerli oturum için geçici olarak devre dışı bırakmak üzere her zaman devre dışı bırakmak yerine sadece lftp kabuğunda yürütmek daha iyidir . Çözüm için hala +1.
akostadinov

8

ssl:verfy-certificate false benim için işe yaramadı, "veri bağlantısı yaparken" zaman aşımı hatası alıyordum.

Bu talimatı dosyama ekleyerek takip set ftp:ssl-allow falseettim ~/.lftprc.


3
Komutu çalıştırdığınızda doğru hecelediniz mi? ssl: doğrulama sertifikası yanlış
Malcolm Murdoch

5

Ek olarak denedim:

  • ssl ayarlama: doğrulama sertifikası / ftp.myblog.com no
  • Bu numara, lftp’de sertifika doğrulamasını devre dışı bırakma

$ cat ~ / .lftp / rc seti ssl: doğrulama sertifikası no

Kullanmayı deneyin set ftp:ssl-allow no; benim için bir cazibe gibi çalıştı.


1
Bu en uygun seçimdir. Genel ayar, mümkünse sertifika doğrulamasının kullanılması makul olduğundan ve genel seçeneği ayarlayarak hiçbir zaman sertifikayı doğrulamaya çalışmadığı için kötü bir seçimdir. Bir komut dosyası kullanabilir lftp -f <script>ve bu komutu open komutundan önce yerleştirebilirsiniz.
kmcguire

set ssl:verify-certificate nodaha iyi çünkü bence işlem güvende kalıyor. set ftp:ssl-allow nodüz metin iletişim kuracak
michalzuber

4

Ayrıca benzer ssl sertifika doğrulama hatasıyla karşı karşıyaydım. Doğrulama sertifikasını 'hayır' olarak ayarlamak benim için çalıştı.

Örnek:

lftp -c 'ftps değerini ayarlayın: ilk koruma ""; ftp ayarı: ssl-force true; ftp'yi ayarlayın: ssl-protect-data true; set ssl: doğrulama sertifikası no; open -u Kullanıcı adı, Şifre 208.82.204.46; uploadfilename; '


3

Adam sayfalarını okudum ve çözüm buldum. Dosya oluştur

~/.lftp/rc

ve oraya bir sonraki satıra ekle:

set ssl:check-hostname false;

1

Lftp komutuna ihtiyacınız var: set ftp:ssl-allow no;

Komutu seçtikten hemen sonra uygulayabilirsiniz:

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

veya komutu içine kaydedin ~/.lftprc.


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

sorunu benim için düzeltti

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.