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.