एसएसएल दिनचर्या: SSL23_WRITE: एसएसएल हैंडशेक विफलता


32

मैं एसएसएल सर्वर से कनेक्ट करने के लिए ओपनएसएसएल का उपयोग करने की कोशिश कर रहा हूं।

जब मैं चलता हूं:

openssl s_client -connect myhost.com:443

निम्न SSL क्लाइंट कॉन्फ़िगरेशन ठीक काम करते हैं:

  • विंडोज ( OpenSSL 0.9.83e 23 Feb 2007)
  • लिनक्स ( OpenSSL 0.9.8o 01 Jun 2010)
  • लिनक्स ( 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:

मैं इसे हल करने पर कैसे आगे बढ़ सकता हूं?

सभी सुझावों की बहुत सराहना की है!


विंडोज से कनेक्ट होने पर क्या प्रोटोकॉल और सिफर का उपयोग किया जाता है?
शेन झुंझलाना

यह कहता है New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA:। काश मैं समझ गया कि यह सब क्या मतलब है! :)
जाकोको

डेस? सर्वोच्च प्राथमिकता रखने के लिए यह एक अजीब सिफर है। आप किस तरह के सर्वर से जुड़ रहे हैं?
शेन झुंझलाना

1
हो सकता है कि नए खुलने पर डिफॉल्ट पुराने ssl प्रोटोकॉल संस्करणों को डिफ़ॉल्ट रूप से प्रतिबंधित कर रहे हों? ऐसा करने के कुछ कारण होंगे जो हाल ही में हुए BEAST मेस को दिए गए हैं ...
रैडकंडबिन

1
डी'ओह, समझा। आप अपनी साइट के विरुद्ध ग्राहकों का परीक्षण कर रहे हैं।
ब्रेंट

जवाबों:


28

यह उबंटू के 1.0.1 ओपनएसएसएल के साथ एक ज्ञात मुद्दा लगता है: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371

ऐसा नहीं लगता है कि कोई फिक्स उपलब्ध है। यदि संभव हो तो आप 1.0.0 को डाउनग्रेड कर सकते हैं।

प्रयत्न openssl s_client -tls1 -connect myhost.com:443


डेबियन के टिकट पर इस समस्या का अधिक विवरण: bugs.debian.org/cgi-bin/bugreport.cgi?bug=665452
ब्रेंट

पीएस मैं आपको यह इनाम (19 घंटे) समाप्त होने पर बाउंटी दूंगा
जाकोको

1
ध्वनि अच्छा :) जानकारी के अंतिम टुकड़ा जो OpenSSL के साथ नदी के ऊपर टिकट कि समस्या का मुख्य कारण हो रहा है: rt.openssl.org/Ticket/...
ब्रेंट

धन्यवाद! यह उत्तर मैक पर भी ओपनएसएसएल 0.9.8zh 14 जनवरी 2016 के लिए काम करता है
19

4

यह त्रुटि ओपनसेल के एक पुराने संस्करण के कारण हो सकती है जब यह सिफर पर फिर से बातचीत नहीं कर सकता है (मैंने दीर्घवृत्त घटता का उपयोग करके एक स्व-हस्ताक्षरित प्रमाण पत्र बनाया)।

विशेष रूप से, मुझे डिफ़ॉल्ट ओपनसेल - 0.9.8zh के साथ मैकओएस पर एक ही त्रुटि मिल रही थी

काढ़ा संस्करण ओपनएसएसएल 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

काढ़ा स्थापित करने के बाद, मेरा ussl संस्करण / usr / bin / opensl में पुराना संस्करण था। मुझे विशेष रूप से
/sr/local/Cellar/openssl/1.0.2o_2/bin पर जाने के लिए Opensl

2

यदि आपको OpenJDK पर चलने वाले जावा HTTPS सर्वर के साथ यह समस्या मिलती है, /etc/java-7-openjdk/security/java.securityतो पंक्ति का संपादन और टिप्पणी करने का प्रयास करें

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

जैसा कि क्रिस्टोफ डब्ल्यू ने खोजा था ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.