SSLCertificateFile और SSLCertificateChainFile के बीच अंतर?


35

आम तौर पर एक वर्चुअल होस्ट के साथ एक ssl निम्नलिखित निर्देशों के साथ सेटअप होता है:

Listen 443 

SSLCertificateFile /home/web/certs/domain1.public.crt
SSLCertificateKeyFile /home/web/certs/domain1.private.key
SSLCertificateChainFile /home/web/certs/domain1.intermediate.crt

प्रेषक: muliple vhosts वाले सर्वर पर एकल डोमेन के लिए SSL सक्षम करने के लिए, क्या यह विन्यास कार्य करेगा?

बीच क्या अंतर है SSLCertificateFileऔर SSLCertificateChainFile? क्लाइंट ने GoDaddy से एक CA कुंजी खरीदी है। ऐसा लगता है कि GoDaddy केवल SSLCertificateFile(.crt फ़ाइल), और SSLCertificateKeyFile (.key फ़ाइल) प्रदान करता है और नहीं SSLCertificateChainFile

क्या मेरा ssl अभी भी एक SSLCertificateChainFileपथ निर्दिष्ट किए बिना काम करेगा ?

इसके अलावा, क्या एक विहित पथ है जहां इन फ़ाइलों को रखा जाना चाहिए?


1
सबसे अधिक स्थानों मैं देख रहा हूँ प्रमाणपत्र फ़ाइलें रखने लोग है में /etc/ssl, /usr/local/etc/sslहै, या एक में sslवेबसाइट के लिए उप-निर्देशिका विशिष्ट (जैसे /home/www/example.com/dataवेबसाइट तो है home/www/example.com/sslप्रमाणपत्र है)।
क्रिस एस

जवाबों:


49

कड़ाई से बोलते हुए, आपको कभी भी कार्य करने के लिए SSL की श्रृंखला की आवश्यकता नहीं है।

क्या आप हमेशा की जरूरत है एक है SSLCertificateFileएक साथ SSLCertificateKeyFileकि प्रमाण पत्र के लिए सही कुंजी युक्त।

मुसीबत यह है, कि अगर आप अपाचे देते हैं, तो यह प्रमाणपत्र है, तो सभी को जोड़ने वाले ग्राहकों को प्रमाणपत्र देना होगा - जो उस एसएसएल प्रमाणपत्र के बारे में पूरी कहानी नहीं बताता है। यह कह रहा है, "मैं किसी के द्वारा हस्ताक्षरित हूं, लेकिन मैं आपको उनके बारे में बताने वाला नहीं हूं"।

यह आमतौर पर ठीक काम करता है, क्योंकि अधिकांश क्लाइंट सिस्टम में सीए प्रमाणपत्र (रूट और इंटरमीडिएट दोनों) का एक बड़ा भंडार होता है, जिसे वह ट्रस्ट की स्थापना के लिए एक मिलान हस्ताक्षरित रिश्ते के माध्यम से जांच सकता है। हालाँकि, कभी-कभी यह काम नहीं करता है; सबसे अधिक बार आप जिस मुद्दे पर चलेंगे, वह एक ग्राहक है जो आपके सीए द्वारा हस्ताक्षरित एक मध्यवर्ती सीए के लिए प्रमाण पत्र नहीं रखता है।

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

  • SSLCertificateFileसर्वर सर्टिफिकेट के बाद नई लाइनों पर आपके द्वारा सेट की गई उसी फ़ाइल में एंबेडेड (रूट नीचे की ओर होना चाहिए)। यदि आप इसे इस तरह सेट करते हैं, तो आप SSLCertificateChainFileठीक उसी फ़ाइल की ओर इंगित करेंगे SSLCertificateFile
  • SSLCertificateChainFileनिर्देश में कॉन्फ़िगर की गई एक अलग फ़ाइल में ; सीए सर्टिफिकेट जो सर्वर का सर्टिफिकेट जारी करता है, वह पहले फाइल में होना चाहिए, उसके बाद रूट में कोई भी अन्य।

अब आपके पास मौजूद प्रमाणपत्र फ़ाइल की जाँच करें - मैं शर्त लगा रहा हूँ कि इसमें चेन डेटा शामिल नहीं है। जो आमतौर पर ठीक काम करता है, लेकिन अंततः कुछ ब्राउज़र या अन्य के साथ एक समस्या पैदा करेगा।


2
मुझे लगता है कि "आमतौर पर ठीक काम करता है" वास्तव में GoDaddy सेर्ट्स पर लागू नहीं होता है, अगर मध्यवर्ती शामिल नहीं है। मुझे यह भी पक्का नहीं है कि यह वास्तव में वेरिसाइन और थावटे जैसे लोगों के लिए लागू होता है, क्योंकि वे साइट को ब्राउज़र में शामिल किए गए आधार से अधिक दूर करने के लिए स्थानांतरित कर चुके हैं। मुझे लगता है कि यह निरस्तीकरण को आसान बनाता है, क्योंकि यह मध्यवर्ती को मारने के लिए सरल है।
cjc

"SSLCertificateFile में एंबेडेड": मैंने चाहा कि यह काम करे, लेकिन ऐसा प्रतीत नहीं होता है, और डॉक्स में इसका उल्लेख नहीं किया गया है। अपनी चेन डालनी होगी SSLCertificateChainFile
स्टीव केहलेट 18

@SteveKehlet आप सही कह रहे हैं कि यह प्रलेखित नहीं है, लेकिन मैंने इसे अतीत में सफलतापूर्वक काम किया है - आपने ऑल-इन-वन फ़ाइल को कैसे प्रारूपित किया?
शेन झुंझलाना

1
@SteveKehlet वास्तव में, आप सही हैं, मुझे गलत याद आया; जिस तरह से मैंने इसे एक सिंगल फाइल के लिए सेट किया था, वह दोनों के लिए था SSLCertificateFileऔर SSLCertificateChainFileएक ही संयुक्त फाइल की ओर इशारा किया, जो काम करता है - जिसने मेरे उत्तर को सही किया।
शेन झुंझलाना

@ShaneMadden सुंदर! यह काम करता हैं! यह पता लगाने के लिए बहुत बहुत धन्यवाद।
स्टीव केहलेट


4

दरअसल, GoDaddy आपको एक मध्यवर्ती श्रृंखला देता है:

http://support.godaddy.com/help/5238

यहाँ कुछ और चर्चा है।

http://support.godaddy.com/help/868/what-is-an-intermediate-certificate

GoDaddy के ईमेल से आपको यह बताया जाता है कि अपने नए प्रमाणपत्र को कैसे डाउनलोड किया जाए, इसके लिए मध्यवर्ती प्रमाणपत्र फ़ाइल की जानकारी भी होगी। यह कहीं न कहीं नीचे की ओर है, शायद आपकी आंखों के बाद वर्बेज और अपसेल से चमकती है।

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


2

मैं SSLCertificateChainFile के बारे में पिछले अच्छे उत्तरों में जोड़ना चाहूंगा कि उस फ़ाइल में प्रमाणपत्रों का क्रम भी महत्वपूर्ण है। OpenSSL- आधारित क्लाइंट ऑर्डर को खुद ही निकाल लेंगे लेकिन गलत ऑर्डर वाले चेन पर आधारित क्लाइंट्स फेल हो जाएंगे।

जैसे-गिले-शिकवे वाले ऑर्डर को टेस्ट करें

gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt -p https wwwsec.cs.uu.nl

जहाँ /etc/ssl/certs/ca-certports.crt वह स्थान है जहाँ आपका डिस्ट्रो संयुक्त सर्टिफ़िकेट डालता है।

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