SSL yordamları: SSL23_WRITE: ssl el sıkışma hatası


32

Bir SSL sunucusuna bağlanmak için OpenSSL kullanmaya çalışıyorum.

Koşarken:

openssl s_client -connect myhost.com:443

Aşağıdaki SSL istemci yapılandırmaları gayet iyi çalışıyor:

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

Başarılı bir bağlantının çıktısı şöyle görünür:

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)

Ancak, müşterimi Ubuntu 12.04 (w / OpenSSL 1.0.1 14 Mar 2012) ile kullandığımda hata alıyorum:

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

Bunu çözmeye nasıl devam edebilirim?

Tüm ipuçları çok takdir edilmektedir!


Windows'dan bağlandığında hangi protokol ve şifre kullanılır?
Shane Madden

Diyor ki: New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA. Keşke bütün bunların ne anlama geldiğini anladım! :)
Jaakko

DES? Bu en yüksek önceliğe sahip garip bir şifre. Ne tür bir sunucuya bağlanıyorsunuz?
Shane Madden

1
Belki de yeni openssl'daki varsayılanlar varsayılan olarak eski ssl protokolü sürümlerini kısıtlıyor olabilir mi? Son BEAST karmaşası göz önüne alındığında bunu yapmak için bazı nedenler olurdu ...
rackandboneman

1
Anladım. Müşterileri sitenize karşı test ediyorsunuz.
br '

Yanıtlar:


28

Bu Ubuntu'nun 1.0.1 OpenSSL'sinde bilinen bir sorun gibi görünüyor: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371

Bir düzeltme kullanılabilir gibi görünmüyor. Mümkünse 1.0.0'a düşürebilirsiniz.

Deneyin openssl s_client -tls1 -connect myhost.com:443


Debian biletindeki problemle ilgili daha fazla ayrıntı: bugs.debian.org/cgi-bin/bugreport.cgi?bug=665452
brent

PS Süresi dolduğunda sana ödül veririm (19 saat)
Jaakko

1
Kulağa hoş geliyor :) En son bilgi, OpenSSL ile sorunun ana nedeni olarak görünen upstream bileti: rt.openssl.org/Ticket/…
brent

Teşekkürler! Bu cevap ayrıca Mac üzerinde OpenSSL 0.9.8zh 14 Oca 2016 için de geçerlidir
tytk

4

Bu hata, şifreyi yeniden pazarlayamadığında openssl'nin daha eski bir sürümünden kaynaklanabilir (eliptik eğriler kullanarak kendinden imzalı bir sertifika oluşturdum).

Özellikle, MacOS'ta da varsayılan openssl - 0.9.8zh ile aynı hatayı alıyordum

OpenSSL 1.0.2f demleme sürümünü yükledikten sonra hata ortadan kalktı:

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

demlemek yükleme yaptıktan sonra, / usr / bin / openssl içindeki openssl sürümüm eski sürümdü.
Openssl'ın

2

Bu sorunu OpenJDK’da çalışan bir Java HTTPS sunucusu ile alırsanız /etc/java-7-openjdk/security/java.security, satırı düzenlemeyi ve yorumlamayı deneyin.

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

Christoph K tarafından keşfedildiği gibi .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.