Підпрограми SSL: SSL23_WRITE: помилка рукостискання ssl


32

Я намагаюся використовувати OpenSSL для підключення до SSL-сервера.

Коли я бігаю:

openssl s_client -connect myhost.com:443

Наступні конфігурації клієнтів SSL працюють чудово:

  • 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)

Вихід з будь-якого успішного з'єднання виглядає приблизно так:

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)

Однак, коли я використовую клієнт із моїм Ubuntu 12.04 (з / OpenSSL 1.0.1 14 Mar 2012), я отримую помилку:

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

Як я можу приступити до вирішення цього питання?

Всі поради високо оцінені!


Які протоколи та шифри використовуються при підключенні до Windows?
Шейн Медден

Він каже: New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA. Я б хотів, щоб я зрозумів, що це все означає! :)
Яакко

DES? Це непарний шифр, який має найвищий пріоритет. До якого сервера ви підключаєтесь?
Шейн Медден

1
Можливо, за замовчуванням новіші openssl за замовчуванням обмежують старі версії протоколу ssl? Для цього були б деякі причини, враховуючи нещодавній БЕЗПЕЧНИЙ безлад ...
rackandboneman

1
D'oh, зрозумів. Ви тестуєте клієнтів на своєму сайті.
brent

Відповіді:


28

Схоже, це відома проблема з Ubuntu 1.0.1 OpenSSL: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371

Схоже, виправлення недоступне. Якщо можливо, ви можете знизитись до 1.0.0.

Спробуйте openssl s_client -tls1 -connect myhost.com:443


Детальніше про проблему з квитком на Debian: bugs.debian.org/cgi-bin/bugreport.cgi?bug=665452
brent

PS Я дам вам винагороду, коли вона закінчиться (19 годин)
Яакко

1
Звучить добре :) Остаточна інформація, квиток за течією OpenSSL, який, здається, є першопричиною випуску: rt.openssl.org/Ticket/…
brent

Спасибі! Ця відповідь також працює для OpenSSL 0.9.8ж 14 січня 2016 на Mac
tytk

4

Ця помилка може бути спричинена старішою версією openssl, коли вона не може повторно узгодити шифр (я створив сертифікат самопідписання за допомогою еліптичних кривих).

Зокрема, я отримував таку ж помилку на MacOS із замовчуванням openssl - 0,9,8ж

Після встановлення версії заварки OpenSSL 1.0.2f помилка усунулася:

~/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

після установки варіння, моя версія opensl у / usr / bin / openssl була старою версією. Мені довелося спеціально перейти до /usr/local/Cellar/openssl/1.0.2o_2/bin, щоб запустити останню версію openssl
Gopi Palamalai

2

Якщо у вас виникає проблема із сервером Java HTTPS, який працює на OpenJDK, спробуйте редагувати /etc/java-7-openjdk/security/java.securityта коментувати рядок

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

як виявив Christoph W .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.