आरएचईएल वास्तव में कुछ भी प्रदान नहीं करता है जिसे सीए ट्रस्ट के उद्देश्यों के लिए 'प्रमाणपत्र निर्देशिका' के रूप में उपयोग किया जा सकता है। OpenSSL के लिए, एक प्रमाणपत्र निर्देशिका - एक 'CApath' - एक निर्देशिका है जिसमें व्यक्तिगत प्रमाणपत्र फ़ाइलें होती हैं (PEM प्रारूप या OpenSSL के विस्तारित 'विश्वसनीय प्रमाणपत्र' प्रारूप में), प्रमाणपत्र के विषय के नाम के आधार पर विशिष्ट प्रारूप में नाम के साथ। आमतौर पर यह .pem
एक निर्देशिका में मानव-पठनीय नाम और एक्सटेंशन के साथ फाइलें डालकर और c_rehash
उस पर चलकर (देखें)man c_rehash
)। 3.3.6 के बाद से GnuTLS के लिए (इससे पहले कि GnuTLS के पास कोई निर्देशिका समर्थन नहीं था), यह सिर्फ PEM फ़ाइलों वाली एक निर्देशिका है; GnuTLS निर्देशिका में हर फ़ाइल को आज़माएगा और कुछ भी PEM-ish पर सफल होगा (यह OpenSSL के 'विश्वसनीय प्रमाणपत्र' प्रारूप को संभाल नहीं सकता है)। मुझे पूरी तरह से यकीन नहीं है कि एनएसएस वास्तव में एक ट्रस्ट रूट के रूप में व्यक्तिगत प्रमाण पत्र फ़ाइलों से भरी निर्देशिका का किसी भी तरह से उपयोग कर सकता है, लेकिन ओपनडाएपी के दस्तावेज यह सुझाव दे सकते हैं (लेकिन यदि निर्देशिका में एनएसएस डेटाबेस भी है तो यह प्राथमिकता देगा)। इसके बावजूद, RHEL के पास व्यक्तिगत CA प्रमाणपत्र फ़ाइलों से भरी निर्देशिका जैसी कोई चीज नहीं है।
डेबियन और डेरिवेटिव /etc/ssl/certs
इस प्रारूप में प्रदान करते हैं ; /etc/ssl/certs
डेबियन पर विहित ट्रस्ट स्टोर स्थान है, और IMO कुछ भी जो इसे प्रदान करता है, उसे मूल रूप से डेबियन की तरह रखना चाहिए, क्योंकि डेबियन की वह निर्देशिका थी जो 1999 की तरह कमोबेश उसी तरह रखी गई थी। आरएचईएल के पास एक /etc/ssl/certs
निर्देशिका है, लेकिन यह है इस प्रारूप में नहीं - इसमें कोई भी व्यक्तिगत प्रमाणपत्र फ़ाइल शामिल नहीं है। आप इसे एक CApath के रूप में उपयोग नहीं कर सकते। ईमानदारी से, आरएचईएल (और फेडोरा, और डेरिवेटिव) पर है कि निर्देशिका मूल रूप से एक जाल है। इसका उपयोग न करें। (देखें https://bugzilla.redhat.com/show_bug.cgi?id=572725 और https://bugzilla.redhat.com/show_bug.cgi?id=1053882यह पहली जगह में क्यों मौजूद है, और मैं इसे ठीक करने की कोशिश कर रहा हूँ) पर कुछ पृष्ठभूमि के लिए। इसलिए मुझे लगता है कि आप सही हैं कि क्या हो रहा है, लेकिन इस कारण के बारे में गलत है। OpenLDAP कुछ भी गलत नहीं कर रहा है, और यह विफल नहीं हो रहा है क्योंकि "ca-bundle.trust.crt ... एक मोज़िला एनएसएस सर्टिफिकेट / कुंजी डेटाबेस है" (जिन्हें कॉल किया जाता है cert8/9.db
और आरएचईएल key3/4.db
पर सिस्टम-वाइड वाले रहते हैं /etc/pki/nssdb
) , यह सिर्फ इसलिए असफल हो रहा है क्योंकि /etc/ssl/certs
एक 'प्रमाणपत्र निर्देशिका' के रूप में प्रयोग करने योग्य नहीं है।
RHEL CApath- शैली ट्रस्ट स्टोर के रूप में कहीं भी उपयोग करने योग्य कुछ भी प्रदान नहीं करता है, या तो। आरएचईएल का सिस्टम ट्रस्ट स्टोर एक एकल पीईएम बंडल फ़ाइल (ओपनएसएसएल शर्तों में एक 'सीएफ़ाइल') के रूप में प्रदान किया जाता है, जिसे /etc/pki/tls/certs/ca-bundle.crt
और यहां पाया जा सकता है /etc/pki/tls/cert.pem
। यह भी पाया जा सकता है के /etc/ssl/certs/ca-bundle.crt
रूप /etc/ssl/certs
में वास्तव में सिर्फ एक सिमलिंक है /etc/pki/tls/certs
, लेकिन यह स्थान विहित नहीं है और वास्तव में कभी भी इसका उपयोग नहीं किया जाना चाहिए। आरएचईएल ओपनएसएसएल के 'विश्वसनीय प्रमाणपत्र' प्रारूप में एक बंडल प्रदान करता है /etc/pki/tls/certs/ca-bundle.trust.crt
।
सही बात यह है, जैसा कि आपको पता चला है, सिस्टम द्वारा प्रदान की गई बंडल फ़ाइल का उपयोग करना है। आपका उत्तर काम करेगा, लेकिन ऊपर वर्णित कारणों के लिए, मैं दृढ़ता से सिफारिश करूंगा TLS_CACERT=/etc/pki/tls/certs/ca-bundle.crt
या TLS_CACERT=/etc/pki/tls/cert.pem
खत्म कर दूंगा TLS_CACERT=/etc/ssl/certs/ca-bundle.crt
।
(इसमें से किसी में भी नया कुछ भी नहीं है, btw, लेकिन इंटरव्यू पर भ्रम व्यापक है। आरएच और डेरिवेटिव ने कभी भी एक निर्देशिका-पूर्ण-प्रमाणपत्र प्रदान नहीं किया है। उन्होंने वर्ष 2000 से एक बंडल फ़ाइल प्रदान की है। 2005 में / usr / share / ssl से / etc / pki / tls में स्थानांतरित कर दिया गया। Debian में दोनों /etc/ssl/certs
एक CApath- शैली निर्देशिका के /etc/ssl/certs/ca-certificates.crt
रूप में और एक बंडल फ़ाइल के रूप में कम या ज्यादा पाषाण युग से हैं।)