2011-12-23 19 views
10

Nếu tôi chạy curl chống lại một máy đang chạy OpenSSL 1.0.0e ví dụ:Chạy curl với OpenSSL 0.9.8 đối với máy chủ OpenSSL 1.0.0 gây ra lỗi bắt tay?

curl -v https://shumaker.flexrentalsolutions.com 

trên một máy đang chạy OpenSSL 0.9.8r tôi nhận được lỗi sau:

About to connect() to shumaker.flexrentalsolutions.com port 443 (#0) 
* Trying 50.112.122.15... connected 
* Connected to shumaker.flexrentalsolutions.com (50.112.122.15) port 443 (#0) 
* SSLv3, TLS handshake, Client hello (1): 
* error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112) 
* Closing connection #0 

Nếu Tôi chạy lệnh curl tương tự trên một máy đang chạy OpenSSL 1.0.0e lệnh hoàn thành mà không có bất kỳ vấn đề.

Có vẻ như sự bắt tay không hoàn thành đúng cách, rõ ràng là do một số không tương thích giữa hai phiên bản OpenSSL.

Bất kỳ ý tưởng nào về cách sửa lỗi này?

Trả lời

6

Đây là lỗi (OpenSSL) vẫn mở. Chi tiết đã được đăng trong curl bug report này.

Chi tiết khác là posted to OpenSSL-dev bởi "mancha".

+0

tôi đã có thể để có được Apache để sử dụng OpenSSL 0.9.8 bởi sử dụng mô-đun mod_ssl được xây dựng để chỉ OpenSSL 0.9.8. Thực hiện thay đổi đó đã giải quyết vấn đề. Bất kỳ ý tưởng nào khi lỗi OpenSSL 1.0.0 sẽ được sửa? – rogiller

0

Đây không phải là một giải pháp tốt , nhưng nó tốt hơn so với bánh xe quay, vì vậy tôi sẽ thêm nó ở đây như một câu trả lời:

Sử dụng các module GnuTLS thay vì mod_ssl, nếu bạn có thể. Nó không bị ràng buộc với OpenSSL, do đó, vấn đề khủng khiếp, ngày lãng phí này được gọn gàng sidestepped.

14

Nếu bạn đặt phiên bản openssl trong giao thức, nó hoạt động:

Đối với dòng lệnh:

curl -v -3 https://shumaker.flexrentalsolutions.com 

Nếu trong php:

curl_setopt($ch, CURLOPT_SSLVERSION,3); 
+0

Tôi đã gặp lỗi lỗi openssl này được đề cập bởi OP. Giải pháp của @jbaylina đã giải quyết được vấn đề của tôi. cảm ơn bạn! – ThinkBonobo

0

Bây giờ do sự POODLE vulnerability nhiều các trang web hiện đang tắt SSL 3.0

Bạn nên sử dụng TLS như thế này:

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1)

Nếu bạn vẫn còn có lỗi (cho Apache) kiểm tra xem bạn vhost nhận được đúng thiết ServerName

+0

POODLE không tồn tại trong năm 2011. Chúng tôi biết lỗi padding tồn tại sớm nhất là năm 2005 hoặc lâu hơn, nhưng hầu hết mọi người đã chọn bỏ qua nó. Trình duyệt là một phần của sự cố vì chúng đã bật SSLv3 quá lâu.Xem Loren Weith [Sự khác biệt giữa SSLv2, SSLv3 và TLS] (http://www.yaksman.org/~lweith/ssl.pdf). – jww

0

Tôi có vấn đề này trên OS X sử dụng bia trên một số máy chủ https , brew sử dụng curl trong nội bộ. Lưu ý rằng đây chỉ là trên OS X 10.7.5, bị kẹt trên OpenSSL/0.9.8r. Tôi sẽ nâng cấp nhưng Apple không hỗ trợ> 10.7 trên iMac này!

sửa chữa của tôi là để nâng cấp curl với bia, mà up phiên bản để 1.0.2f, may mắn là các brew cài đặt của curl không

brew install curl