2015-06-13 19 views
15

Tôi cố gắng để tải về tập tin từ một trang web https và tiếp tục nhận được lỗi sau:ssl wget bắt tay cảnh báo thất bại

OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 
Unable to establish SSL connection. 

Từ đọc blog trực tuyến Tôi thu thập tôi phải cung cấp các CERT máy chủ và cert khách hàng. Tôi đã tìm thấy các bước về cách tải xuống chứng chỉ máy chủ nhưng không phải là chứng chỉ ứng dụng khách. Có ai có một bộ hoàn chỉnh các bước để sử dụng wget với SSL? Tôi cũng đã thử tùy chọn --no-check-certificate nhưng điều đó không có tác dụng.

phiên bản wget: wget-1.13.4 phiên bản openssl: OpenSSL 1.0.1f ngày 06 tháng 1 2014

cố gắng để tải về tất cả các nguồn lực giảng từ trang web của một khóa học về coursera.org. Vì vậy, URL sẽ trông giống như sau: https://class.coursera.org/matrix-002/lecture

Truy cập trang web này trực tuyến yêu cầu xác thực biểu mẫu, không chắc chắn nếu điều đó gây ra lỗi.

+0

Điều này có thể là bất kỳ thứ gì, như giao thức không được hỗ trợ, mật mã, SNI ..... Nhưng nó thường không liên quan đến việc xác thực chứng chỉ máy chủ. Vui lòng thêm các chi tiết khác như phiên bản wget, phiên bản openssl và trang web bạn đang cố gắng truy cập. Cũng sử dụng 'wget -v --debug'. –

+0

Đã xóa nhận xét – sotn

Trả lời

21

Nó hoạt động ở đây với cùng phiên bản OpenSSL, nhưng phiên bản mới hơn của wget (1.15). Nhìn vào Changelog có sự thay đổi đáng kể sau đây liên quan đến vấn đề của bạn:

1.14: Add support for TLS Server Name Indication.

Lưu ý rằng trang này không yêu cầu SNI. Nhưng www.coursera.org yêu cầu nó. Và nếu bạn muốn gọi wget với -v --debug (như tôi đã đề nghị một cách rõ ràng trong nhận xét của tôi!), Bạn sẽ thấy:

$ wget https://class.coursera.org 
... 
HTTP request sent, awaiting response... 
    HTTP/1.1 302 Found 
... 
Location: https://www.coursera.org/ [following] 
... 
Connecting to www.coursera.org (www.coursera.org)|54.230.46.78|:443... connected. 
OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 
Unable to establish SSL connection. 

Vì vậy, các lỗi thực sự xảy ra với www.coursera.org và lý do thiếu sự hỗ trợ cho SNI. Bạn cần nâng cấp phiên bản wget của mình.

+1

Sẽ cung cấp ảnh và cập nhật đó. – sotn

+0

Không bao giờ nghĩ đến việc cập nhật wget. Cảm ơn gợi ý! –

+0

Vì vậy, nếu chúng tôi đang làm việc trên máy chủ RHEL 6 với tư cách là người dùng không có khả năng nâng cấp gói * any *, làm cách nào để chúng tôi khắc phục vấn đề như vậy? – Vitor

0

Về cơ bản OpenSSL của bạn sử dụng SSLv3 và trang web bạn đang truy cập không hỗ trợ giao thức đó.

Chỉ cần cập nhật wget của bạn:

sudo apt-get install wget

Hoặc nếu nó đã được hỗ trợ một giao thức an toàn, chỉ cần thêm nó như là đối số:

wget https://example.com --secure-protocol=PROTOCOL_v1

0

tôi ở SLES12 và cho tôi nó hoạt động sau khi nâng cấp lên wget 1.14, sử dụng --secure-protocol = TLSv1.2 và sử dụng --auth-no-challenge.

wget --no-check-certificate --secure-protocol=TLSv1.2 --user=satul --password=xxx --auth-no-challenge -v --debug https://jenkins-server/artifact/build.x86_64.tgz 
Các vấn đề liên quan