2013-07-19 8 views
37

एसएसएल हैंडशेक डीबग कैसे करें, अधिमानतः कर्ल के साथ?एसएसएल हैंडशेक डीबगिंग

मैं क्लाइंट प्रमाणपत्र के साथ प्रति निर्देशिका प्रमाणीकरण की समस्या निवारण करना चाहता हूं। मैं विशेष रूप से यह जानना चाहता हूं कि कौन से स्वीकार्य क्लाइंट प्रमाण पत्र सर्वर भेजते हैं।

अग्रिम धन्यवाद

उत्तर

2

कर्ल शायद अधिक जानकारी दिखाने के लिए, लेकिन इस जैसी चीजों के लिए कुछ विकल्प मैं हमेशा का उपयोग openssl s_client

-debug विकल्प इस उपयोगी जानकारी के बहुत सारे देता है

शायद के साथ है मैं यह जोड़ना चाहिए कि यह गैर HTTP कनेक्शन के साथ भी काम करता है। तो यदि आप "https" कर रहे हैं, तो नीचे दिए गए कर्ल कमांड को आज़माएं। आप नहीं कर रहे हैं या चाहते हैं एक दूसरा विकल्प openssl s_client अच्छा हो सकता है

+1

ध्यान दें कि अगर कर्ल का आपका संस्करण एक अलग एसएसएल लाइब्रेरी जैसे जीएनयूटीएलएस (ओपनएसएल के बजाय - 'curl -V' का उपयोग करके जांचें) के खिलाफ संकलित किया गया है, तो आपको उस कनेक्शन को एक बाइनरी के साथ डीबग करने का प्रयास करना चाहिए जो उस SSL लाइब्रेरी का उपयोग करता है इसके बजाए उदाहरण के लिए gnutls-cli -V www.google.com 443 –

37

मैं क्लाइंट प्रमाणपत्र बातचीत का निवारण करने के इस आदेश का इस्तेमाल किया है:

openssl s_client -connect www.test.com:443 -prexit 

उत्पादन शायद "स्वीकार्य क्लाइंट प्रमाणपत्र CA नाम" में शामिल होंगे और एक सर्वर से सीए प्रमाणपत्रों की सूची, या संभवतः "कोई क्लाइंट प्रमाणपत्र सीए नाम नहीं भेजा गया", यदि सर्वर को हमेशा क्लाइंट प्रमाण पत्र की आवश्यकता नहीं होती है।

+0

जाहिर है 'openssl s_client ..' केवल प्रमाणपत्र श्रृंखला की जांच करता है, लेकिन HTTP अनुरोध में नाम ही नहीं। मैं कुछ प्रमाणपत्रों के साथ संघर्ष करता हूं जो openssl पसंद करता है, लेकिन कर्ल नहीं करता .. – radiospiel

+0

मैंने उपरोक्त को '-Showcerts' के साथ जोड़ा और यह एक आकर्षण की तरह काम किया - धन्यवाद! – Techmag

14
curl -iv https://your.domain.io 

आप CERT और हैडर उत्पादन आप openssl आदेश का उपयोग नहीं करना चाहते हैं, तो दे देंगे कि।

संबंधित मुद्दे