Thói quen SSL: SSL23_WRITE: lỗi bắt tay ssl


32

Tôi đang cố gắng sử dụng OpenSSL để kết nối với máy chủ SSL.

Khi tôi chạy:

openssl s_client -connect myhost.com:443

Các cấu hình máy khách SSL sau chỉ hoạt động tốt:

  • Windows ( OpenSSL 0.9.83e 23 Feb 2007)
  • Linux ( OpenSSL 0.9.8o 01 Jun 2010)
  • Linux ( OpenSSL 1.0.0-fips 29 Mar 2010)

Đầu ra từ bất kỳ kết nối thành công nào trông như thế này:

New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DES-CBC3-SHA
    Session-ID: (hidden)
    Session-ID-ctx:
    Master-Key: (hidden)
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1337266099
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

Tuy nhiên, khi tôi sử dụng máy khách với Ubuntu 12.04 (w / OpenSSL 1.0.1 14 Mar 2012), tôi gặp lỗi:

CONNECTED(00000003)
...:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:

Làm thế nào tôi có thể tiến hành giải quyết điều này?

Tất cả các lời khuyên được nhiều đánh giá cao!


Giao thức và mật mã nào được sử dụng khi kết nối từ Windows?
Shane Madden

Nó nói : New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA. Tôi ước tôi hiểu tất cả những điều này có nghĩa là gì! :)
Jaakko

MÔ TẢ? Đó là một mật mã kỳ lạ để có mức độ ưu tiên cao nhất. Bạn đang kết nối với loại máy chủ nào?
Shane Madden

1
Có lẽ các mặc định trên openssl mới hơn theo mặc định hạn chế các phiên bản giao thức ssl cũ hơn? Sẽ có một số lý do để làm như vậy với mớ hỗn độn BEAST gần đây ...
rackandboneman

1
D'oh, đã hiểu. Bạn đang kiểm tra khách hàng đối với trang web của bạn.
brent

Câu trả lời:


28

Đây có vẻ là một vấn đề đã biết với OpenSSL của Ubuntu: https://bugs.launchpad.net/ubfox/+source/openssl/+orms/965371

Nó không giống như một bản sửa lỗi có sẵn. Nếu có thể bạn có thể hạ cấp xuống 1.0.0.

Thử openssl s_client -tls1 -connect myhost.com:443


Thông tin chi tiết về sự cố trên vé Debian: bug.debian.org/cgi-bin/orpreport.cgi?orms=665452
brent

Tái bút: Tôi sẽ cho bạn tiền thưởng khi hết hạn (19 giờ)
Jaakko

1
Nghe có vẻ hay :) Thông tin cuối cùng, vé ngược dòng với OpenSSL dường như là nguyên nhân cốt lõi
brent

Cảm ơn! Câu trả lời này cũng hoạt động cho OpenSSL 0.9.8zh 14 tháng 1 năm 2016 trên Mac
tytk

4

Lỗi này có thể do phiên bản openssl cũ hơn khi nó không thể thương lượng lại mật mã (Tôi đã tạo chứng chỉ tự ký bằng các đường cong elliptic).

Cụ thể, tôi đã gặp lỗi tương tự trên MacOS với openssl mặc định - 0.9.8zh

Sau khi cài đặt phiên bản brew OpenSSL 1.0.2f, lỗi đã biến mất:

~/bin/openssl s_client -connect localhost:45678 | grep Cipher

verify return:1
New, TLSv1/SSLv3, Cipher is ECDHE-ECDSA-AES256-GCM-SHA384
    Cipher    : ECDHE-ECDSA-AES256-GCM-SHA384

Sau khi thực hiện cài đặt brew, phiên bản openssl của tôi trong / usr / bin / openssl là phiên bản cũ. Tôi đã phải đặc biệt truy cập /usr/local/Cellar/openssl/1.0.2o_2/bin để chạy phiên bản mới nhất của openssl
Gopi Palamalai

2

Nếu bạn gặp sự cố này với máy chủ Java HTTPS đang chạy trên OpenJDK, hãy thử chỉnh sửa /etc/java-7-openjdk/security/java.securityvà nhận xét dòng

security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg

như phát hiện bởi Christoph W .

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.