Routines SSL: SSL23_WRITE: échec de l'établissement de liaison ssl


32

J'essaie d'utiliser OpenSSL pour me connecter à un serveur SSL.

Quand je cours:

openssl s_client -connect myhost.com:443

Les configurations de client SSL suivantes fonctionnent parfaitement:

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

La sortie de toute connexion réussie ressemble à ceci:

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)

Cependant, lorsque j'utilise un client avec Ubuntu 12.04 (w / OpenSSL 1.0.1 14 Mar 2012), je reçois une erreur:

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

Comment puis-je procéder pour résoudre ce problème?

Tous les conseils sont très appréciés!


Quel protocole et quel chiffrement sont utilisés lors de la connexion à partir de Windows?
Shane Madden

Il dit: New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA. Je souhaite avoir compris ce que tout cela signifie! :)
Jaakko

DES? C'est un chiffre étrange pour avoir la plus haute priorité. À quel type de serveur vous connectez-vous?
Shane Madden

1
Peut-être que les valeurs par défaut du plus récent openssl restreignent par défaut les anciennes versions du protocole ssl? Il y aurait des raisons de le faire étant donné le récent bazar de BEAST ...
rackandboneman

1
D'oh, compris. Vous testez les clients sur votre site.
Brent

Réponses:


28

Cela semble être un problème connu d'OpenSSL 1.0.1 d'Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371

Il ne semble pas qu'un correctif soit disponible. Si possible, vous pouvez rétrograder à 1.0.0.

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


Plus de détails sur le problème sur le ticket Debian: bugs.debian.org/cgi-bin/bugreport.cgi?bug=665452
brent

PS je vais vous donner la prime quand il expire (19 heures)
Jaakko

1
Ça sonne bien :) Dernier élément d’information, un billet en amont avec OpenSSL qui semble être la cause fondamentale du problème: rt.openssl.org/Ticket/…
brent

Merci! Cette réponse fonctionne également pour OpenSSL 0.9.8zh le 14 janvier 2016 sur Mac
tytk le

4

Cette erreur peut être causée par une ancienne version d’openssl lorsqu’elle ne peut pas renégocier le chiffrement (j’ai généré un certificat auto-signé à l’aide de courbes elliptiques).

Plus précisément, je recevais la même erreur sur MacOS avec OpenSL par défaut - 0.9.8zh

Après avoir installé la version brassée OpenSSL 1.0.2f, l'erreur a disparu:

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

Après avoir installé une infusion, ma version openssl dans / usr / bin / openssl était l'ancienne version. Je devais spécifiquement aller à /usr/local/Cellar/openssl/1.0.2o_2/bin pour exécuter la dernière version de openssl
Gopi Palamalai le

2

Si vous rencontrez ce problème avec un serveur Java HTTPS s'exécutant sur OpenJDK, essayez de modifier /etc/java-7-openjdk/security/java.securityet de commenter la ligne.

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

comme l'a découvert par Christoph W .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.