it-swarm.com.de

SSL-Routinen: SSL23_WRITE: SSL-Handshake-Fehler

Ich versuche, OpenSSL zu verwenden, um eine Verbindung zu einem SSL-Server herzustellen.

Wenn ich renne:

openssl s_client -connect myhost.com:443

Die folgenden SSL-Client-Konfigurationen funktionieren einwandfrei:

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

Die Ausgabe einer erfolgreichen Verbindung sieht folgendermaßen aus:

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)

Wenn ich jedoch einen Client mit meinem Ubuntu 12.04 verwende (w/OpenSSL 1.0.1 14 Mar 2012) Ich bekomme eine Fehlermeldung:

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

Wie kann ich das lösen?

Alle Tipps werden sehr geschätzt!

32
Jaakko

Dies scheint ein bekanntes Problem mit Ubuntus 1.0.1 OpenSSL zu sein: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371

Es sieht nicht so aus, als wäre ein Fix verfügbar. Wenn möglich, können Sie ein Downgrade auf 1.0.0 durchführen.

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

29
brent

Dieser Fehler kann durch eine ältere Version von openssl verursacht werden, wenn die Verschlüsselung nicht erneut ausgehandelt werden kann (ich habe ein selbstsigniertes Zertifikat mit elliptischen Kurven erstellt).

Insbesondere habe ich unter MacOS den gleichen Fehler mit der Standardeinstellung openssl - 0.9.8zh erhalten

Nach der Installation der Brühversion OpenSSL 1.0.2f ist der Fehler behoben:

~/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
4
Andrei Sura

Wenn dieses Problem mit einem Java HTTPS-Server, der unter OpenJDK ausgeführt wird, auftritt), bearbeiten Sie /etc/Java-7-openjdk/security/Java.security Und kommentieren Sie die Zeile aus

security.provider.10=Sun.security.pkcs11.SunPKCS11 ${Java.home}/lib/security/nss.cfg

wie entdeckt von Christoph W .

2
Aldaviva