मैं यह कैसे सुनिश्चित करूं कि stunnel सभी मध्यवर्ती CA certs भेजता है?


13

कुछ कंप्यूटर, लेकिन अधिकांश नहीं, मेरे वेबसर्वर से एसएसएल प्रमाणपत्र को अस्वीकार कर रहे हैं। समस्या यह प्रतीत होती है कि कुछ कंप्यूटर CA सीट्स को अस्वीकार कर रहे हैं। यह समस्या पूरी तरह से अद्यतन नहीं होने पर मैक ओएस एक्स 10.6 पर प्रकट होती है।

Http://www.sslshopper.com/index.php?q=ssl-checker.html#hostname=beta.asana.com के अनुसार - कोई समस्या नहीं है।

Http://certlogik.com/sslchecker/ के अनुसार , कोई मध्यवर्ती खंड नहीं भेजा जा रहा है।

मेरा प्रमाणपत्र Starfield Technologies से है, और मैं sf_bundle.crtयहाँ से उपयोग कर रहा हूँ : certs.godaddy.com/anonymous/repository.seam

मैं निम्नलिखित के साथ stunnel के माध्यम से अपने सर्वर पर एसएसएल को संभाल रहा हूं stunnel.conf:

cert = $CODEZ/admin/production/proxy/asana.pem
CAfile = $CODEZ/admin/production/proxy/sf_bundle.crt
pid =
client = no

[<forwarded port>]
accept = 443
connect = 8443

कोई भी विचार जो मैं गलत कर सकता था?

जवाबों:


17

CAFileविकल्प क्लाइंट प्रमाणीकरण प्रमाण पत्र के लिए उपयोग करने के लिए एक सीए कॉन्फ़िगर करता है; यह वह नहीं है जो आप चाहते हैं।

इसके बजाय, आप certसंपूर्ण लागू प्रमाणपत्र श्रृंखला में विकल्प में फ़ाइल को शिल्प करना चाहते हैं । आप उस फ़ाइल की बैकअप प्रतिलिपि सहेजना चाहते हैं, फिर एक नया बना सकते हैं; मूल रूप से दो फाइलों को मिलाकर, इस तरह तैयार किया गया है:

-----BEGIN CERTIFICATE-----
(certificate from asana.pem file pasted here)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(intermediate certificate here; copy-paste the top chunk from the bundle)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(root certificate here; copy-paste the bottom chunk from the bundle)
-----END CERTIFICATE-----

यह स्टनलाइन को ग्राहकों को पूर्ण प्रमाणपत्र श्रृंखला पेश करने के लिए मजबूर करेगा।

एक और tidbit; openssl s_clientप्रमाण पत्र श्रृंखला के मुद्दों के परीक्षण और आपकी सेवा अपने प्रमाणपत्र कैसे प्रस्तुत कर रही है, इसकी जाँच के लिए यह कमांड बहुत उपयोगी है।

संपादित करें: ठीक है .. प्रमाणपत्र बंडल की श्रृंखला तीन-गहरी है, लेकिन विश्वास श्रृंखला दो-गहरी दिखाई देती है। कुछ ठीक नहीं है।

शीर्ष प्रमाण पत्र ("स्टारफील्ड सिक्योर सर्टिफिकेशन अथॉरिटी") "स्टारफील्ड क्लास 2 सर्टिफिकेशन अथॉरिटी" नामक एक हस्ताक्षरकर्ता द्वारा हस्ताक्षरित है, जिसके अंगूठे के निशान के साथ शुरू होता है ad7e1c28.. लेकिन बंडल में दूसरा सर्टिफिकेट, पहले सर्टिफिकेट के हस्ताक्षरकर्ता के नाम के समान है, जो ठीक उसी प्रमाण पत्र होना चाहिए , जिसके पास अंगूठे का निशान हो 363e4734, और जिसकी समाप्ति तिथि 10 साल पहले हो। फिर तीसरा (रूट) प्रमाणपत्र सम्मिलित मध्यवर्ती प्रमाणपत्र का हस्ताक्षरकर्ता है .. लेकिन उन दोनों में से किसी का भी पहले वाले से कोई संबंध नहीं है!

अगर यह समझ में नहीं आया, चिंता मत करो। सारांश: मैला काम, किसी ने गंभीरता से गेंद को इस प्रमाणित बंडल का निर्माण किया। आपकी सबसे अच्छी शर्त, तब बेस -64 प्रारूप में फ़ाइलों को उस ब्राउज़र से निर्यात करना है जो श्रृंखला को सफलतापूर्वक सत्यापित कर रहा है, उन्हें उस प्रारूप में चिपका दिया है जिसे मैंने वहां से सूचीबद्ध किया था।

चूँकि आपकी खुद की कोई गलती नहीं होने के कारण यह गड़बड़ है, इसलिए मैंने आपके DNS नाम पर एक अनुमान लगाया और प्रमाणपत्र को पकड़ लिया, और मुझे लगता है कि यह आपकी पूरी श्रृंखला होनी चाहिए: http://pastebin.com/Lnr3WHc8


धन्यवाद यह सुपर उपयोगी था! मैं आगे नहीं बढ़ सकता क्योंकि मेरे पास प्रतिनिधि अंक नहीं हैं, लेकिन मैं :-)
जैक स्टाल

@Jack यदि आपकी समस्या हल हो गई है, तो आप कम प्रतिनिधि के साथ भी उत्तर को स्वीकार कर सकते हैं। मैंने पोस्ट को स्पष्ट करने के लिए संपादित किया है कि उनके द्वारा प्रदान की गई प्रमाणपत्र बंडल को खराब कर दिया गया है .. और चूंकि यह एक ऐसी गड़बड़ है, इसलिए मैं आगे बढ़ा और आपके लिए पूरी श्रृंखला को एक साथ फेंक दिया।
शेन झुंझलाना

1

Qualys SSLLabs परिवर्तनों के बाद आपके कॉन्फ़िगरेशन की जाँच करने के लिए वास्तव में आसान है।

https://www.ssllabs.com/ssldb/analyze.html

आपको जो चेक मिला है

  • मजबूत सिफर सक्षम
  • कमजोर सिफर अक्षम
  • प्रमाणपत्र श्रृंखला पूर्ण और सही क्रम में

1

किसी और को इस समस्या का सामना करने के लिए, शेन की पोस्ट ने चाल चली, हालांकि मुझे सीएफ़ाइल को भी शामिल करना था। श्रृंखला बनाते समय, यह भी सुनिश्चित करें कि आप इस लेख के अनुसार फ़ाइल नामकरण निर्देशों का पालन करें

आपके द्वारा उपयोग किए जाने वाले फ़ाइलनाम का निर्धारण करने के लिए, आप c_hash प्रोग्राम का उपयोग कर सकते हैं जो OpenSSL ( /usr/local/ssl/miscनिर्देशिका में) के साथ आता है :

c_hash some_certificate.pem
a4644b49.0 => some_certificate.pem

इसलिए, उपरोक्त मामले में आप फ़ाइल का नाम बदल देंगे a4644b49.0
(ध्यान दें कि फ़ाइल नाम में डॉट के बाद शून्य, अक्षर O नहीं है।)

यदि आपके पास c_hashप्रोग्राम नहीं है तो आप हैश मान निर्धारित करने के लिए उपयुक्त ओपनएसएसएल कमांड चला सकते हैं:

openssl x509 -hash -noout -in some_certificate.pem
a4644b49

और अगर आप इस समस्या का सामना कर रहे हैं, तो आप Android कॉर्डोबा के साथ वेबस्केट्स का उपयोग करने का प्रयास कर रहे हैं, तो अपने कॉर्डोवा-व्हाइटेलिस्ट सामान में मैन्युअल रूप से wss जोड़ना सुनिश्चित करें, क्योंकि * में केवल http और https शामिल हैं।


जिस लेख को आप लिंक करते हैं, उसके शीर्ष पर एक बड़ा लाल बैनर है, जिसमें लिखा है कि यह पृष्ठ ह्रासमान है , क्या आपको यकीन है कि यह जानकारी सही है, जैसा कि समर्थित है - या इस समय के रूप में, चीजों को किया जाना चाहिए लिख रहे हैं?
ऑस्ट्रेलियाई

2
सकारात्मक, कम से कम सिर्फ उद्धृत भाग के लिए। जब तक आप प्रमाणपत्र श्रृंखला का नाम फ़ाइल के हैश के रूप में नहीं लिखेंगे, तब तक stunnel एक wobbly चक देगा।
BrightEyed

इसके अलावा, .0 को जोड़ना हमारे लिए आवश्यक नहीं था। वर्तनी ठीक करने के लिए धन्यवाद btw, एक looooong रात के बाद पोस्ट चकित; डी
BrightEyed

बहुत बढ़िया, सत्यापन सुनकर खुशी हुई। मैं समझता हूं, मैं अपने तीसरे दिन अब एक पंक्ति में हूं। (11, फिर 14 घंटे, आज एक और 14 घंटे हो सकते हैं।)
ऑस्ट्रेलियाई

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