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(w / 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。これが何を意味するのか理解できたらいいのに!:)
Jaakko

DES?これは、最高の優先度を持つ奇妙な暗号です。どの種類のサーバーに接続していますか?
シェーンマッデン

1
たぶん、新しいopensslのデフォルトはデフォルトで古いsslプロトコルバージョンを制限していますか?最近のBEASTの混乱を考えると、そうするいくつかの理由があります
...-rackandboneman

1
わかった。あなたのサイトに対してクライアントをテストしています。
ブレント

回答:


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=

PS有効期限が切れたら(19時間)バウンティを差し上げます
Jaakko

1
音の良い:)情報の最後のピース、OpenSSLの上流チケット問題の根本的な原因のようです:rt.openssl.org/Ticket/...
ブレント

ありがとう!この回答は、Mac上のOpenSSL 0.9.8zh 2016年1月14日
-tytk

4

このエラーは、古いバージョンのopensslが暗号を再ネゴシエートできない場合に発生する可能性があります(楕円曲線を使用して自己署名証明書を生成しました)。

具体的には、デフォルトのopenssl-0.9.8zhでMacOSで同じエラーが発生していました

brewバージョンの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

brewインストールを行った後、/ usr / bin / opensslにある私のopensslバージョンは古いバージョンでした。具体的には/usr/local/Cellar/openssl/1.0.2o_2/binにアクセスして、最新バージョンのopenssl
Gopi Palamalai

2

OpenJDKで実行されているJava HTTPSサーバーでこの問題が発生した場合/etc/java-7-openjdk/security/java.securityは、行を編集してコメントアウトしてください

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

クリストフWによって発見されたように。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.