Opensl s_client के आउटपुट को समझना


14

जब से हमारे ईमेल प्रदाता ने अपने एसएसएल प्रमाणपत्र को बदल दिया है, मोनो पर आधारित एक POP3 क्लाइंट ईमेल डाउनलोड करने के लिए अपने सुरक्षित POP सर्वर से कनेक्ट करने से इनकार कर देता है। अन्य ग्राहकों के पास कोई समस्या नहीं है; उदाहरण के लिए थंडरबर्ड और आउटलुक; अधिकांश एसएसएल चेकर साइटें नहीं हैं जो इस को छोड़कर विषम बंदरगाहों की जांच करने में सक्षम हैं । मैं समस्या को कम करने के प्रयास में दोनों प्रदाताओं के साथ काम कर रहा हूं, लेकिन आखिरकार दोनों के साथ एक मृत-अंत तक पहुंच गया है, क्योंकि मुझे एसएसएल प्रमाणपत्रों के बारे में पर्याप्त नहीं पता है कि गलती कहां निहित है यह समझने के लिए या तो प्रदाता को मार्गदर्शन करने में सक्षम होना चाहिए।

जांच के दौरान, मेरा ध्यान निम्नलिखित दो आदेशों के आउटपुट में अंतर पर आकर्षित हुआ (मैंने पठनीयता के लिए आउटपुट से प्रमाण पत्र हटा दिए हैं):

echo "" | openssl s_client -showcerts -connect pop.gmail.com:995

जुड़े (00000003)
गहराई = 2 / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
सत्यापन त्रुटि: संख्या = 20: स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ
सत्यापन सत्यापित करें: 0
---
प्रमाणपत्र श्रृंखला
 0 s: / C = US / ST = कैलिफ़ोर्निया / L = माउंटेन व्यू / O = Google इंक / CN = pop.gmail.com
   i: / C = US / O = Google Inc / CN = Google इंटरनेट प्राधिकरण G2
----- BEGIN CERTIFICATE -----
----- END प्रमाण पत्र -----
 1 s: / C = US / O = Google इंक / CN = Google इंटरनेट प्राधिकरण G2
   i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
----- BEGIN CERTIFICATE -----
----- END प्रमाण पत्र -----
 2 s: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
   i: / C = US / O = इक्विफैक्स / OU = इक्विफैक्स सिक्योर सर्टिफिकेट अथॉरिटी
----- BEGIN CERTIFICATE -----
----- END प्रमाण पत्र -----
---
सर्वर प्रमाणपत्र
विषय = / C = US / ST = कैलिफ़ोर्निया / L = माउंटेन व्यू / O = Google इंक / CN = pop.gmail.com
जारीकर्ता = / C = US / O = Google इंक / CN = Google इंटरनेट प्राधिकरण G2
---
कोई क्लाइंट प्रमाणपत्र CA नाम नहीं भेजा गया
---
SSL हैंडशेक में 3236 बाइट्स और 435 बाइट्स लिखे गए हैं
---
नया, TLSv1 / SSLv3, सिफर RC4-SHA है
सर्वर सार्वजनिक कुंजी 2048 बिट है
सुरक्षित पुनर्जागरण आईएस समर्थित है
संपीड़न: कोई नहीं
विस्तार: कोई नहीं
एसएसएल-सत्र:
    प्रोटोकॉल: TLSv1
    सिफर: RC4-SHA
    सत्र-आईडी: 745F84194498529B91B7D9194363CBBD23425446CF2BFF3BF5557E3C6606CA06
    सत्र-आईडी ctx:
    मास्टर-की: DED1AE0A44609F9D6F54626F4370ED96436A561A59F64D66240A277066322DCD2CCB9A6D19895F4D2B0C7E6781EECD2
    की-आर्ग: कोई नहीं
    प्रारंभ समय: 1397678434
    टाइमआउट: 300 (सेकंड)
    रिटर्न कोड सत्यापित करें: 20 (स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ)
---
+ 69.3.61.10 c13mb42148040pdj से अनुरोध के लिए तैयार जीपीओपी
किया हुआ

echo "" | openssl s_client -showcerts -connect secure.emailsrvr.com:995

जुड़े (00000003)
गहराई = 2 / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
सत्यापन त्रुटि: संख्या = 19: प्रमाण पत्र श्रृंखला में स्व हस्ताक्षरित प्रमाण पत्र
सत्यापन सत्यापित करें: 0
---
प्रमाणपत्र श्रृंखला
 0 s: / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = www.rapidssl.com/resource/cps (c) 14 / OU = डोमेन नियंत्रण मान्य करें - RapidSSL (R) / CN.Nec/sec पर देखें।
   i: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA
----- BEGIN CERTIFICATE -----
----- END प्रमाण पत्र -----
 1 s: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA
   i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
----- BEGIN CERTIFICATE -----
----- END प्रमाण पत्र -----
 2 s: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
   i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
----- BEGIN CERTIFICATE -----
----- END प्रमाण पत्र -----
---
सर्वर प्रमाणपत्र
विषय = / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = देखें www.rapidssl.com/resources-cps (c) 14 / OU = डोमेन नियंत्रण मान्य - RapidSSL (R) /CNecure.secure
जारीकर्ता = / C = US / O = GeoTrust, Inc./CN=RapidSSL CA
---
कोई क्लाइंट प्रमाणपत्र CA नाम नहीं भेजा गया
---
SSL हैंडशेक में 3876 बाइट्स और 319 बाइट्स लिखे गए हैं
---
नया, TLSv1 / SSLv3, सिफर DHE-RSA-AES256-SHA है
सर्वर सार्वजनिक कुंजी 2048 बिट है
सुरक्षित पुनर्जागरण आईएस समर्थित है
संपीड़न: कोई नहीं
विस्तार: कोई नहीं
एसएसएल-सत्र:
    प्रोटोकॉल: TLSv1
    सिफर: डीएचई-आरएसए-एईएस 256-एसएचए
    सत्र-आईडी: 3F4EE3992B46727BE2C7C3E76A9A6A8D64D66EE843CB1B17A76AE2E030C7161
    सत्र-आईडी ctx:
    मास्टर-कीः
    की-आर्ग: कोई नहीं
    प्रारंभ समय: 1397678467
    टाइमआउट: 300 (सेकंड)
    रिटर्न कोड सत्यापित करें: 19 (प्रमाण पत्र श्रृंखला में स्व हस्ताक्षरित प्रमाण पत्र)
---
किया हुआ

मैं यह समझने की कोशिश कर रहा हूं कि क्या यह सार्थक है, क्योंकि जब -CApathविकल्प प्रदान किया जाता है, तो कमांड कोई त्रुटि उत्पन्न नहीं करते हैं:

openssl s_client -CApath /etc/ssl/certs -showcerts -connect secure.emailsrvr.com:995

CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = "GeoTrust, Inc.", CN = RapidSSL CA
verify return:1
depth=0 serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ/dD, OU = 4159320284, OU = See www.rapidssl.com/resources/cps (c)14, OU = Domain Control Validated - RapidSSL(R), CN = secure.emailsrvr.com
verify return:1
...

openssl s_client -CApath /etc/ssl/certs -showcerts -connect pop.gmail.com:995

CONNECTED(00000003)
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = pop.gmail.com
verify return:1
...

मैं जियोट्रस्ट से सीधे CAfile प्रमाणपत्र-CAfile डाउनलोड करने के बाद विकल्प का सफलतापूर्वक उपयोग कर सकता हूं।

फिर भी, फॉग क्रीक को लगता है कि समस्या प्रमाण के साथ है, क्योंकि उन्होंने Trustसफलता के बिना मोनो के स्टोर में प्रमाण जोड़ने की कोशिश की है । मैं उनसे असहमत होगा, लेकिन (जैसा कि ऊपर बताया गया है) जबकि अधिकांश एसएसएल चेकर्स या तो पोर्ट 995 की जांच नहीं करते हैं या प्रयास के दौरान सफल होते हैं, मुझे यह पृष्ठ मिला जो एसएसएल त्रुटि 7 का उत्पादन करता है।

क्या मैं आउटपुट को सही तरीके से व्याख्या करने के लिए मतलब है कि प्रमाण पत्र के साथ कुछ भी गलत नहीं है?


2
मुझे लगता है कि "प्रमाण पत्र श्रृंखला में स्व हस्ताक्षरित प्रमाण पत्र" त्रुटि एक लाल हेरिंग है। एक रूट CA हमेशा स्व-हस्ताक्षरित होता है, इसलिए एक सर्वर जो अपनी पूर्ण प्रमाणपत्र श्रृंखला लौटाता है वह हमेशा स्व हस्ताक्षरित प्रमाण पत्र लौटाएगा। अधिक जानकारी यहाँ
bennettp123

2
वास्तव में, ऐसा लगता openssl s_clientहै कि डिफ़ॉल्ट रूप से कोई रूट सेर्ट आयात नहीं करता है। इसके बजाय यह प्रयास करें: openssl s_client -connect secure.emailsrvr.com:995 -showcerts -CApath /etc/ssl/certsऔर आप शायद पाएंगे कि स्व-हस्ताक्षरित त्रुटि गायब हो जाती है।
bennettp123

@ bennettp123 मैं प्रश्न के नीचे की ओर उस कमांड के आउटपुट को नोट करता हूं। क्या मुझे आदेश के दोनों संस्करणों के आउटपुट को समझने का अधिकार है कि प्रमाणपत्र वैध है?
jobu1324

हां, उस आउटपुट के अनुसार, ओपनस्एल सोचता है कि प्रमाण मान्य है। इसे अस्वीकार क्यों किया जा रहा है? मुझे नहीं पता। यह हो सकता है क्योंकि संगठन फ़ील्ड सेट नहीं है, लेकिन यह केवल एक अनुमान है।
bennettp123

जवाबों:


5

इसका उत्तर (जैसा कि इस सुरक्षा में बताया गया है। ईएस पोस्ट ) यह है कि चेन में आपके द्वारा देखे जाने वाले दो जियोट्रस्ट ग्लोबल सीए प्रमाणपत्र वास्तव में एक ही प्रमाण पत्र नहीं हैं , एक दूसरे से लिया गया है।

CA क्रॉस-साइनिंग के कारण!

जब जियोट्रस्ट ग्लोबल सीए सर्टिफिकेट पहली बार बनाया और हस्ताक्षरित किया गया था, तो किसी भी कंप्यूटर / ब्राउज़र / एप्लिकेशन को उनके ट्रस्ट स्टोर में नहीं मिला होगा।

होने से एक और , GeoTrust जड़ CA प्रमाणपत्र, जिसके परिणामस्वरूप प्रमाण पत्र (एक "पुल" प्रमाण पत्र के रूप में) अब दूसरे सीए द्वारा सत्यापित किया जा सकता पर हस्ताक्षर (एक पूर्व मौजूदा प्रतिष्ठा और वितरण के साथ) सीए GeoTrust जड़ सीए होने प्रमाण पत्र के बिना ग्राहक द्वारा स्पष्ट रूप से भरोसा किया जाना।

जब Google GeoTrust रूट CA सर्टिफिकेट के क्रॉस-हस्ताक्षरित संस्करण को प्रस्तुत करता है, तो क्लाइंट जो मूल पर भरोसा नहीं करता है, वह केवल GeoTrust को सत्यापित करने के लिए Equifax CA सर्टिफिकेट का उपयोग कर सकता है - इसलिए इक्विफ़ैक्स एक तरह का "विरासत" ट्रस्ट एंकर के रूप में कार्य करता है।


इसीलिए दो सर्वर चेन अलग हैं और फिर भी दोनों वैध हैं। लेकिन यह जरूरी नहीं है कि ओपी की समस्या के लिए मोनो क्लाइंट के साथ, बिना स्पष्ट डेटा के कि कौन सी जड़ें हैं और विशेष मोनो उदाहरण के ट्रस्टस्टोर में स्थापित नहीं हैं।
dave_thompson_085

0

जब मुझे ssl जाँच के लिए सक्षम करना है तो इसी तरह की समस्या थी pop.gmail.com

मैंने इक्विफ़ैक्स पीएम फ़ाइल डाउनलोड की, लेकिन यह काम नहीं कर पाया, उसे चलाना पड़ा c_rehash ssl/certsजिसने हैश मान के साथ एक प्रतीकात्मक लिंक बनाया, यह तब काम किया।

वैकल्पिक रूप से, हैश मान को भी चलाकर जाना जा सकता है ...

openssl x509 -in Equifax_Secure_Certificate_Authority.pem -fingerprint -subject -issuer -serial -hash -noout | sed  -n /^[0-9]/p

https://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.pem


क्या आप कृपया लिंक किए गए पेम-फाइल के साथ क्या कर सकते हैं?
sebix

# ldd / usr / bin / fetchmail | grep ssl libssl.so.10 => /lib64/libssl.so.10
chetangb

कुछ समय पहले जो मैंने पढ़ा है वह ओपनस्लैम लिबास का उपयोग करता है और यह केवल प्रमाणित productforums.google.com/forum/# ​​है । grep ssl libssl.so.10 => /lib64/libssl.so.10 yum whatprovides libssl.so.10 ओपनस्ले-लिबास-1.0.1-42.el7.i686, TLS कार्यान्वयन रेपो के साथ एक सामान्य उद्देश्य क्रिप्टोग्राफी लाइब्रेरी: बेस मिलान किया गया से: प्रदान करता है: libssl.so.10
chetangb

कृपया अपना उत्तर दें और बताएं कि समस्या क्या हो सकती है, आप प्राप्त करना चाहते हैं।
सेबिक्स

0

प्रमाण पत्र बनाते और कॉन्फ़िगर करते समय, किसी को openssl.cnfफ़ाइल (साथ ही - डेबियन - /etc/ssl/openssl.cnf) को अपडेट करना चाहिए , उचित पथ, प्रमाणित नाम आदि को इंगित करने के लिए, फिर आप कमांड चला सकते हैं और उन्हें -CApathविकल्प के बिना जांच सकते हैं ।

और तदनुसार दूरस्थ होस्ट भी इस मामले में आपके प्रमाणपत्रों की ठीक से जाँच कर सकते हैं।

यहाँ उचित openssl.cnfअनुभाग है:

####################################################################
[ ca ]

default_ca  = CA_default        # The default ca section

####################################################################
[ CA_default ]

dir     = /etc/ssl  

1
यह गलत हैdefault_ca(किसी भी) openssl कॉन्फ़िग फ़ाइल में डेटा प्रयोग किया जाता है केवल सत्यापन के लिए कभी नहीं, इस मुद्दे को 'सीए' उपयोगिता और वैकल्पिक रूप से निरस्त प्रमाणपत्र के लिए। डिफ़ॉल्ट सत्यापन स्टोर (recompiling के अलावा) को बदलने का तरीका पर्यावरण चर SSL_CERT_ {FILE, DIR} के साथ है। हालाँकि (1) बग के कारण s_clientडिफ़ॉल्ट का उपयोग नहीं किया जाता है (अप्रैल 2015 के अनुसार नियत किया गया फिक्स) जो (2) यह ओपी वैसे भी बदलना नहीं चाहता था।
dave_thompson_085
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.