Làm thế nào để tránh lỗi xác minh lftp Chứng chỉ?


46

Tôi đang cố gắng để blog Pelican của tôi hoạt động. Nó sử dụng lftp để chuyển blog thực tế sang máy chủ, nhưng tôi luôn gặp lỗi:

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

Tôi nghĩ rằng lftp đang kiểm tra SSL và việc thiết lập nhanh Pelican chỉ quên rằng tôi không có SSL trên FTP của mình.


Đây là mã trong Makefile của Pelican:

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

mà kết xuất trong thiết bị đầu cuối là:

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

Những gì tôi quản lý cho đến nay là, từ chối kiểm tra SSL bằng cách thay đổi Makefile thành:

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

Do triển khai không chính xác, tôi đã đăng nhập chính xác ( lftp username@myblog.com:~>) nhưng tính năng một dòng không hoạt động nữa và tôi phải nhập lệnh nhân bản bằng tay:

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

Điều này hoạt động mà không có lỗi và thời gian chờ. Câu hỏi là làm thế nào để làm điều này với một lớp lót.


Ngoài ra, tôi đã thử:

  • set ssl:verify-certificate/ftp.myblog.com no
  • Thủ thuật này để vô hiệu hóa xác minh chứng chỉ trong lftp:

    $ cat ~ / .lftp / rc set ssl: verify-cert no

Tuy nhiên, có vẻ như không có thư mục "RC" trong thư mục lftp của tôi - vì vậy lời nhắc này không có cơ hội để làm việc.


1
~/.lftprc là một tập tin
Mausy5043

Câu trả lời:


42

Từ trang hướng dẫn :

Các lệnh -c
Thực thi các lệnh đã cho và thoát. Các lệnh có thể được phân tách bằng dấu chấm phẩy ( ;), AND ( &&) hoặc OR ( ||). Hãy nhớ trích dẫn các đối số lệnh đúng trong trình bao. Tùy chọn này phải được sử dụng một mình mà không có đối số khác.

Vì vậy, bạn muốn chỉ định các lệnh dưới dạng một đối số, được phân tách bằng dấu chấm phẩy:

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

Bạn thực sự có thể bỏ qua quitlệnh và sử dụng -cthay vì -e.


Thật tuyệt. Cảm ơn rất nhiều. Tôi đã hy vọng rằng ai đó có nhiều kinh nghiệm hơn tôi sẽ nhận ra sự thất bại của tôi ngay lập tức (- Tôi cũng đã thử đề nghị -c của bạn bỏ việc, nhưng điều này không hiệu quả với tôi. Dù sao tôi cũng rất vui).
patrick

34

Tôi đã có một vấn đề tương tự, mặc dù lftp của tôi có hỗ trợ ssl được biên dịch trong (Fedora RPM). ssl:verify-certificate falseđã lừa tôi


11
Dựa trên điều này, đưa set ssl:verify-certificate falsevào ~/.lftprcgiải quyết vấn đề cho tôi.
Nicolas Raoul

5
Mặc dù điều đó đánh bại quan điểm sử dụng SSL, lftp của bạn giờ đây vui vẻ chấp nhận bất kỳ chứng chỉ nào được cấp, khiến bạn dễ bị tấn công M2M.
quang phổ

1
Nếu chứng chỉ không được xác thực hợp lệ, một nguyên nhân có thể là lftp không tìm thấy chứng chỉ CA của hệ thống của bạn. Xem câu trả lời này để sửa chữa.
ingomueller.net

19

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

sẽ giải quyết vấn đề nếu bạn không muốn kiểm tra chứng chỉ


2
Điều này vẫn vô hiệu hóa xác minh chứng chỉ SSL và điều này làm cho các cuộc tấn công trung gian có thể xảy ra. Để khắc phục tốt hơn, xem câu trả lời này .
ingomueller.net

3
tốt hơn là chỉ thực thi set ssl:verify-certificate notrong lftp shell để vô hiệu hóa tạm thời cho phiên hiện tại thay vì vô hiệu hóa luôn. Vẫn +1 cho giải pháp.
akostadinov

8

ssl:verfy-certificate false không làm việc cho tôi, tôi đã gặp lỗi hết thời gian khi "tạo kết nối dữ liệu".

Tôi đã làm theo các hướng dẫn bằng cách thêm set ftp:ssl-allow falsevào ~/.lftprctập tin của tôi .


3
Bạn đã đánh vần nó đúng khi bạn chạy lệnh? ssl: xác minh-chứng chỉ sai
Malcolm Murdoch

5

Ngoài ra, tôi đã thử:

  • đặt ssl: verify-chứng chỉ / ftp.myblog.com không
  • Thủ thuật này để vô hiệu hóa xác minh chứng chỉ trong lftp:

$ cat ~ / .lftp / rc set ssl: verify-cert no

Hãy thử sử dụng set ftp:ssl-allow no; nó làm việc như một cơ duyên đối với tôi


1
Đây là sự lựa chọn thích hợp nhất. Cài đặt toàn cục là một lựa chọn tồi vì nó hợp lý khi sử dụng xác minh chứng chỉ khi có thể và bằng cách đặt tùy chọn toàn cầu, nó sẽ không bao giờ cố gắng xác minh chứng chỉ. Bạn có thể sử dụng tệp script lftp -f <script>và đặt lệnh này trước lệnh mở.
kmcguire

set ssl:verify-certificate noTôi nghĩ tốt hơn vì giao dịch vẫn được bảo mật. set ftp:ssl-allow nosẽ liên lạc với văn bản gốc
michalzuber

4

Tôi cũng đã phải đối mặt với loại xác nhận lỗi chứng nhận ssl tương tự. Đặt chứng chỉ xác minh thành 'không' làm việc cho tôi.

Thí dụ:

lftp -c 'đặt ftps: ban đầu-prot ""; đặt ftp: ssl-force true; đặt ftp: ssl-bảo vệ dữ liệu đúng; đặt ssl: xác minh-chứng chỉ số; mở -u Tên đăng nhập, Mật khẩu 208.82.204.46; đặt tên tập tin tải lên; '


3

Tôi đã đọc các trang người đàn ông và tìm thấy giải pháp. Tạo tập tin

~/.lftp/rc

và thêm dòng tiếp theo:

set ssl:check-hostname false;

1

Cần lệnh lftp: set ftp:ssl-allow no;

Bạn có thể thực thi lệnh ngay sau khi chọn:

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

hoặc lưu lệnh vào ~/.lftprc.


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

khắc phục sự cố cho tôi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.