आप अपूर्ण एसएसएल श्रृंखला को कैसे ठीक करते हैं


29

मेरे पास एक गो डैडी एसएसएल प्रमाणपत्र स्थापित है, और एंड्रॉइड को छोड़कर हर जगह ठीक काम करता है।

https://www.ssllabs.com/ssltest/analyze.html का कहना है कि श्रृंखला अधूरी है, और मैंने स्टैक ओवरफ्लो पर पढ़ा कि गलत क्रम में एक एसएसएल श्रृंखला Android पर विफल हो जाएगी।

लेकिन मैं इसे कैसे क्रम में रखूं? मेरे सर्वर पर? एसएसएल सर्टिफिकेट को खुद को फिर से तैयार करना होगा? एफ़टीपी पर चीजें स्थानांतरित करें?

जवाबों:


19

जकजन के जवाब के बाद, मेरे पास एक समस्या थी जब मैंने एंड्रॉइड वेबव्यू में अपने नए सुरक्षित सर्वर पर AJAX अनुरोध करने के लिए jquery का उपयोग करने की कोशिश की। यह ब्राउज़र में काम करता है, लेकिन मेरे ऐप में नहीं।

मैंने इस साइट का उपयोग किया: https://certificatechain.io/

मैं अपने हस्ताक्षरित .crt फ़ाइल के पाठ में पेस्ट किया गया जो मुझे कोमोडो (पॉज़िटिवएलएसएल) से वापस मिला, और इसने मुझे मेरी ज़रूरत की हर चीज़ का एक संक्षिप्त विवरण वापस दे दिया। मैंने इसे अपने डोमेन + "chain.crt" के रूप में सहेजा है (नीचे देखें)

फिर, मेरे अपाचे विन्यास में, मैंने उस विशेष आभासी मेजबान के लिए कुछ इस तरह से प्रवेश किया:

SSLEngine On
SSLCertificateFile /etc/ssl/localcerts/example_com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/example.com.key
SSLCACertificateFile /etc/ssl/localcerts/example.com.chain.crt

उसके बाद, मेरे एंड्रॉइड ऐप के वेबव्यू को मेरे सर्वर पर AJAX से POST का उपयोग करने में कोई समस्या नहीं हुई। मैंने इसे 2 वास्तविक दुनिया के उपकरणों पर आज़माया, जिनमें से एक 2.3.4 चल रहा था, एक 4. चल रहा था। और एमुलेटर पर 2.3 चल रहा है। सभी ने काम किया।

आशा है कि ये आपकी मदद करेगा।


1
मेरे लिए कुंजी SSLCACertificateFileनिर्देश को जोड़ रही थी और इसे सीए फाइल को इंगित करते हुए मेरे अधिकार ने मुझे दिया। यह काम नहीं करेगा अगर मैं बस अपने प्रमाण पत्र फ़ाइल के लिए अन्य प्रमाण पत्र समाप्‍त कर दिया।
एलेक्स डब्ल्यू

पुराने Apache में SSLCertificateChainFile का उपयोग SSLCACertificateFile के बजाय किया जा सकता है (यदि आप अपने कॉन्फिग में इस कुंजी को खोजते हैं और इसे नहीं पा सकते हैं)।
dr0i

अविश्वसनीय रूप से, लेकिन @ रीचर्ड उत्तर साइट प्रमाणपत्रचैन.आईओ का उपयोग कर रहा है और साइट का कहना है "... जनवरी-जनवरी तक सर्टिफिकेट-चेन-रिसॉल्वर से प्रेरित", जिन्होंने इस सवाल का जवाब यहां दिया: superuser.com/a/866523/92500 , धन्यवाद @ ज़कजान!
एंड्रेस मोरेल्स

SSLCACertificateFileलाइन मैं याद किया था। प्रारंभ में मैंने माना कि मेरा CA बहुत नया था क्योंकि SSL कुछ ब्राउज़रों / OS के अनुरोधों पर काम करता था, लेकिन अन्य नहीं। Decoder.link/sslchecker का उपयोग करने से यह स्पष्ट करने में मदद मिली कि मेरा कॉन्फ़िगरेशन गलत था, और इस उत्तर में सुधार था। धन्यवाद!!
जोसेफदपुरसेल

9

श्रृंखला crt फ़ाइल में थी, कि मूल एसएसएल काम कर रहा था।

GoDaddy के लिए एक दूसरा प्रमाणपत्र है - gd_bundle.crt

इस जानकारी को कॉपी करें और सर्वर पर स्थापित crt में जोड़ें।

तो सर्वर पर मूल crt में 1 प्रमाण पत्र था, और इसके बाद एक ही फाइल पर 3 होगा। यह चेन है।

मुझे अभी भी ssllabs.com पर श्रृंखला के मुद्दों में एंकर मिला है, लेकिन यह एक मुद्दा नहीं है, बस में या बाहर छोड़ने का एक विकल्प है - के अनुसार - /security/24561/ssltest-chain-issues -contains-लंगर / 24566 # 24566


2
चेन के मुद्दों से छुटकारा पाने के लिए gd_bundle.crt से अंतिम प्रमाण पत्र निकालें
sanmai

7

आप इस तरह के मुद्दों को रोकने के लिए प्रमाण पत्र से विश्वसनीय रूट प्रमाण पत्र (अनन्य, इस क्रम में) के लिए सभी प्रमाणपत्रों को मैन्युअल रूप से अधूरा प्रमाणपत्र श्रृंखला समस्या को हल कर सकते हैं। ध्यान दें, विश्वसनीय रूट सर्टिफिकेट नहीं होना चाहिए, क्योंकि यह सिस्टम के रूट सर्टिफिकेट स्टोर में पहले से ही शामिल है।

आपको जारीकर्ता से मध्यवर्ती प्रमाण पत्र प्राप्त करने में सक्षम होना चाहिए और उन्हें अपने आप से एक साथ मिलाना चाहिए। Btw, मैंने प्रक्रिया को स्वचालित करने के लिए एक स्क्रिप्ट लिखी है, यह सही ढंग से जंजीर प्रमाण पत्र के उत्पादन का प्रमाण पत्र लेता है। https://github.com/zakjan/cert-chain-resolver


यह एक समाधान की तरह लगता है जो प्रमाण पत्र को सही ढंग से सेटअप करने में स्थानीय मशीन को केवल "ट्रिक" करता है।
एलेक्स डब्ल्यू

नहीं। आउटपुट सर्टिफिकेट बंडल को एक सर्वर पर अपलोड किया जाना है, जो वेबसाइट कंटेंट भेजता है। प्रत्येक ग्राहक अपने मध्यवर्ती के साथ प्रमाण पत्र प्राप्त करेगा।
जकजन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.